passwordforlinux
❶ linux下sudo不要密碼怎麼實現
解決辦法一:
在啟動時進入安全模式,這時是用root登錄的,執行:
chmod 740 /etc/sudoers
然後打開/etc/sudoers這個文件,把最後一行:
%admin ALL=(ALL)
改為
%%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL
保存退出。
執行:
chmod 0440 /etc/sudoers
reboot your ubuntu.OK!
解決方法二:
Ubuntu默認不能直接用root帳戶登錄,必須從第一個創建的用戶(既安裝時創建的那個用戶)通過su或sudo來獲得root許可權。在Ubuntu中對系統進行操作很多時候都要使用這個命令,由此可見對於新來說很有必要來認識這個命令。這或許不太方便,但這樣增加了安全性,避免用戶由於誤操作而損壞系統。
sudo
格式:sudo [其它命令]
sudo既為Super user do的意思。sudo在這個過程中只起一個調用root用戶的作用,本次操作完成後,其作用就消失,如果要使用調用root許可權操作的命令就必須再次使用sudo。些過程中系統會要求用戶輸入密碼,此密碼就是安裝系統時你輸入你那個密碼,注意:這個密碼在輸入你時候不會像在Windows里輸密碼那樣輸入一位密碼就有一個*號,這樣的目的就是為了使密碼更安全,因為不知道你密碼有幾位這樣無疑給密碼破譯者增加了難度。:)
例:
我們要更改當前目錄下upload.tar.gz的許可權就要用到sudo。如果還要對當前目錄下的另外一個文件eva.tar.gz更改許可權就要再次用到sudo。
ownlinux@server:/var/www$ sudo chmod 777 upload.tar.gz
[sudo] password for ownlinux: (此時輸入你的密碼)
ownlinux@server:/var/www$ sudo chmod 777 eva.tar.gz
[sudo] password for ownlinux:
補充:
通常我們並不以root身份登錄,但是當我們執行某些命令 (command)時需要用到root許可權,我們通常都是用"sudo command"來執行command。由於使用Ubuntu,所以經常都都用sudo,而使用sudo時,又得輸入密碼,所以我就尋找sudo不輸入密碼的方法。前陣子google了一下,很容容易找到一個方法,但是對其不夠理解,今天,仔細研究了一下/etc/sudoers這個文件,對於如何實現自己的需求就非常清楚了。網上說看到的資料往往寫得不清楚,所以我根據自己的需求好好整理了一下。
假設我的用戶名為jay(屬於 admin組),使sudo不用密碼的方法如下。
運行命令:sudo visudo 或者 sudo vi /etc/sudoers,如果vi來編輯,則保存時記得用"wq!"強制保存,否則會提示只讀不能保存的。
就會編輯/etc/sudoers這個文件。 默認情況我們會看到有"%admin ALL=(ALL) ALL"一句話,就是允許admin組在所有主機上執行所有命令,當然是需要passwd的。
1. 如果想把admin組的用戶都sudo不用密碼那麼可以將這一行換為:"%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL"即可。
2. 如果僅僅想讓jay用戶sudo不需密碼,則可添加"jay ALL = NOPASSWD: ALL"這樣一行。
3. 如果讓jay用戶sudo不用密碼即可執行某幾個命令,可這樣寫"jay ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adser"
4. 欲知其他更多配置方式,請運行"man sudoers"看幫助文檔吧。
注意:我自己的一個配置沒生效,找原因還找了陣子,寫到這里吧。
我添加"jay ALL = NOPASSWD: ALL"這樣一行;但是,jay執行sudo時還是需要輸入密碼,這是為什麼?
原來是,我這一行在"%admin ALL=(ALL) ALL"組策略之前前,後面的組配置覆蓋了前面的配置,而jay屬於admin組,所以需要密碼。
這時,只需要將%admin行用#注釋掉即可。OK!然後立馬就生效了,可能執行sudo時系統都會去讀取/etc/sudoers的,所以立即就生效了。
另外,附帶公司某伺服器的一個/etc/sudoers配置:
復制代碼
代碼如下:
Defaults env_reset
Defaults syslog=auth
Defaults log_year,logfile=/var/log/sudo.log
User_Alias ABC = abc
Cmnd_Alias DEFAULT=/bin/*,/sbin/ldconfig,/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel,/bin/rpm,/usr/bin/yum,/sbin/service,/sbin/chkconfig,sudoedit /etc/rc.local,sudoedit /etc/hosts,sudoedit /etc/ld.so.conf,/bin/mount,sudoedit /etc/exports,/usr/bin/passwd [!-]*,!/usr/bin/passwd root,/bin/su - [!-]*,!/bin/su - root,!/bin/su root,/bin/bash,/usr/sbin/dmidecode,/usr/sbin/lsof,/usr/bin/,/usr/bin/python,/usr/sbin/xm,sudoedit /etc/profile,sudoedit /etc/bashrc,/usr/bin/make,sudoedit /etc/security/limits.conf,/etc/init.d/*,/usr/bin/ruby
ABC ALL=(ALL)NOPASSWD:DEFAULT
通過修改/etc/sudoers
sudo vi /etc/sudoers
把/etc/sudoers裡面最後一行
%admin ALL=(ALL)
改為
%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL
然後強制保存 wq 就OK
上面說的並不準確,要注意以下幾點。
編輯/etc/sudoers文件使用「超級用戶終端」,而不能使用普通的終端。「超級用戶終端」啟動通過右鍵「編輯菜單」命令添加。
❷ Linux操作系統的密碼將如何破解
一般來說有兩種方法能夠修改root密碼:
1.
進入單用戶模式修改密碼
對於lilo,在啟動時輸入
代碼:
boot:
linux
single
對於grub,
在啟動時輸入「e」編輯啟動項,在「kernel
xxx」行末尾加「single」
代碼:
kernel
/boot/lfskernel-2.6.8.1
root=/dev/hda2
ro
single
啟動後root將不會提示密碼,輸入passwd能夠重新配置密碼
但是有一些特別的
init
使得這一方法可能不那麼順利,比如會出現以下提示(或其他古怪信息):
代碼:
Give
root
password
for
maintenance
(or
type
Control-D
for
normal
startup)
那麼就需要直接使用
bash
而不是系統的
init
:
代碼:
#對於lilo:
boot:
linux
init=/bin/bash
對於grub:
kernel
/boot/lfskernel-2.6.8.1
root=/dev/hda2
ro
init=/bin/bash
啟動後會得到一個
root
shell
,
但硬碟是只讀的,
需要重新載入:
代碼:
#
mount
-o
remount,rw
/
....
做您想做的事吧,
比如
vi
/etc/passwd
....
#
mount
-o
remount,ro
/
能夠重新啟動了
2.:載入系統分區修改密碼(適用於啟動管理器有密碼保護的情況)
能夠使用其他linux
LiveCD(如Knoppix和RedHat安裝盤的rescue模式)啟動,載入系統所在的分區:
代碼:
mount
/dev/hda2
/mnt
然後直接修改/mnt/etc/passwd,清空其中的password項
或
代碼:
chroot
/mnt
passwd
配置新密碼
❸ 如何分析udp報文,從而獲取源地址
1、寫了一個UDP 的小程序,有一個UDP 的server,而且有UDP的client。
然後執行server和client,然後用tcpmp將該埠的UDP數據報文抓取出來。
執行的過程是這樣的。
client向server發送"xiyou"
server向client應答"wangzhe"
client程序在主機example上運行(192.168.1.144)
server程序在主機linux上運行(192.168.1.101)
------------------------------------------------------------------------------------------------------------
2、UDP數據報文。
linux@linux:~$ sudo tcpmp -vvv -X udp port 7777
[sudo] password for linux:
tcpmp: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:03:01.923227 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 48)
example.local.43521 > linux.7777: [udp sum ok] UDP, length 20
0x0000: 4500 0030 0000 4000 4011 b677 c0a8 0190 E..0..@[email protected]....
0x0010: c0a8 0165 aa01 1e61 001c 4c34 7869 796f ...e...a..L4xiyo
0x0020: 7500 0000 0000 0000 0000 0000 0000 0000 u...............
11:03:01.923343 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 48)
linux.7777 > example.local.43521: [bad udp cksum 6869!] UDP, length 20
0x0000: 4500 0030 0000 4000 4011 b677 c0a8 0165 E..0..@[email protected]
0x0010: c0a8 0190 1e61 aa01 001c 8473 7761 6e67 .....a.....swang
0x0020: 7a68 6500 0000 0000 0000 0000 0000 0000 zhe.............
由上面的報文可知,有兩個UDP數據報文。
第一個報文是example主機上的client向server發送數據。
4500 0030 0000 4000 4011 b677 c0a8 0190 c0a8 0165 這20個數據是IP首部。
aa01 1e61 001c 4c34 這8個位元組是UDP的首部。
7869 796f 7500 0000 0000 0000 0000 0000 0000 0000 這20個數據是我用sendto函數發送的
數據。
而將char req[20] = "xiyou" 的ASCII碼(16進制)就是:
78 69 79 6f 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
第二個報文是linux向主機example做出的應答。
4500 0030 0000 4000 4011 b677 c0a8 0165 c0a8 0190 這20個數據是IP首部。
1e61 aa01 001c 8473 這8個位元組是UDP首部。
7761 6e67 7a68 6500 0000 0000 0000 0000 0000 0000 這20個數據是應用層的數據。
而將char reply[20] = "wangzhe"的ASCII碼(16進制)就是:
77 61 6e 67 7a 68 65 0 0 0 0 0 0 0 0 0 0 0 0 0
由此看出,應用層的數據沒有夾雜其他的參數,全部是數據,均是字元的ASCII碼。
-----------------------------------------------------------------------
附帶網路程序:
udp_server.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <string.h>
int main(void)
{
struct sockaddr_in server,client;
int sockfd;
int cli_len = 0,n;
char req[20] = {0},reply[20] = {0};
sockfd = socket(AF_INET,SOCK_DGRAM,0);
if (sockfd < 0) {
perror("socket error!\n");
exit(-1);
}
memset(&server,0,sizeof(struct sockaddr_in));
server.sin_family = AF_INET;
server.sin_addr.s_addr = htonl(INADDR_ANY);
server.sin_port = htons(7777);
if (bind(sockfd,(struct sockaddr *)&server,sizeof(server)) < 0) {
perror("bind error!\n");
exit(-1);
}
for (;;) {
cli_len = sizeof(struct sockaddr_in);
n = recvfrom(sockfd,req,20,0,(struct sockaddr *)&client,&cli_len);
if (n < 0) {
perror("recvfrom error!\n");
exit(-1);
}
printf("hello!\n");
strncpy(reply,"wangzhe",sizeof("wangzhe"));
if (sendto(sockfd,reply,20,0,(struct sockaddr *)&client,sizeof(client)) != 20) {
perror("sendto error!\n");
exit(-1);
}
}
return 0;
}
-----------------------------------------------------------------------------------------------------------
udp_client.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <string.h>
int main(void)
{
int sockfd,n;
struct sockaddr_in server;
char req[20]={0},reply[20]={0};
sockfd = socket(AF_INET,SOCK_DGRAM,0);
if (sockfd < 0) {
perror("socket error!\n");
exit(-1);
}
memset(&server,0,sizeof(server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr("192.168.1.101");
server.sin_port = htons(7777);
strncpy(req,"xiyou",sizeof("xiyou"));
printf("sendto req to server:%s\n",req);
if (sendto(sockfd,req,20,0,(struct sockaddr *)&server,sizeof(server)) != 20) {
perror("sendto error!\n");
exit(-1);
}
if ((n = recvfrom(sockfd,reply,20,0,(struct sockaddr *)NULL,(int *)NULL)) < 0) {
perror("recvfrom error!\n");
exit(-1);
}
printf("recv reply from server :%s\n",reply);
exit(0);
}
--------------------------------------------------------------------------------------------------------
❹ linux 終端中PASSWORD為什麼輸不進去
LINUX輸入密碼不是輸入不進去,輸入完密碼後點回車鍵,系統自動接收你的密碼。只要繼續輸入沒有輸入錯誤的,最後輸入完按回車鍵就能自動進入用戶了。
他只是不顯示,不存在輸入不進去的情況。
(4)passwordforlinux擴展閱讀:
切換用戶命令:#su 用戶名稱, 然後輸入password後輸入密碼就可以了
linux命令是對Linux系統進行管理的命令。對於Linux系統來說,無論是中央處理器、內存、磁碟驅動器、鍵盤、滑鼠,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心,與之前的DOS命令類似。linux命令在系統中有兩種類型:內置Shell命令和Linux命令。
cp個命令相當於dos下面的命令,具體用法是:cp –r源文件(source) 目的文件(target)
rm移除文件命令
mv這個命令的功能是移動目錄或文件
cat查看文件命令,顯示文件內容的命令
❺ red hat linux 9.0 password for root
自己的用戶名能幹很少的事情,linux賬戶管理非常嚴格,這也是病毒少的原因
涉及改變/home/XXX以外的目錄和文件時都要用到root賬戶
輸入密碼時為保密,屏幕上是沒有任何變化的,輸好後直接回車就行
一般先用
su登錄root用戶
再做修改
❻ linux:如何修改用戶的密碼
Linux修改密碼用 passwd 命令,用root用戶運行passwd ,passwd user_name可以設置或修改任何用戶的密碼,普通用戶運行passwd只能修改它自己的密碼。
[root@localhost ~]# passwd ##修改root用戶密碼
Changing password for user root..
New password: ##輸入新密碼
Retype new password: ##再次確認新密碼
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd hadoop ##修改hadoop用戶密碼
Changing password for user hadoop.
New password: ##輸入新密碼
Retype new password: ##再次確認新密碼
passwd: all authentication tokens updated successfully.
passwd 常用參數如下:
-k ##keep-tokens keep non-expired authentication tokens 註:保留即將過期的用戶在期滿後能仍能使用;
-d ##delete delete the password for the named account (root only) 註:刪除用戶密碼,僅能以root許可權操作;
-l ##lock lock the named account (root only) 註:鎖住用戶無權更改其密碼,僅能通過root許可權操作;
-u ##unlock unlock the named account (root only) 註:解除鎖定;
-f ##force force operation 註:強制操作;僅root許可權才能操作;
-x ##maximum=DAYS maximum password lifetime (root only) 註:兩次密碼修正的最大天數,後面接數字;僅能root許可權操作;
-n ##minimum=DAYS minimum password lifetime (root only) 註:兩次密碼修改的最小天數,後面接數字,僅能root許可權操作;
-w ##warning=DAYS 註:在距多少天提醒用戶修改密碼;僅能root許可權操作;
-i ##inactive=DAYS 註:在密碼過期後多少天,用戶被禁掉,僅能以root操作;
-S ##status report password status on the named account (root only) 註:查詢用戶的密碼狀態,僅能root用戶操作;
更多Linux知識可參考《Linux就該這么學》。
❼ Ubuntu下怎麼設置Root超級賬戶密碼
1、用當前登錄用戶打開終端,在終端輸入命令 sudo passwd,輸入當前用戶的密碼然後回車
2、會提示輸入新密碼,輸入完成後回車
3、然後提示再輸入一次新密碼以確認,然後回車,設置成功
linuxidc@ubuntu:~$ sudo passwd
[sudo] password for linuxidc:
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
linuxidc@ubuntu:~$
注意:這個新密碼就是root的密碼,可以與當前用戶的密碼不同。
在終端中輸入 su root,然後輸入root的密碼,驗證成功即可切換到root用戶。在root用戶下做完操作後,用exit命令即可退出root用戶,退回當前登陸用戶。
❽ 在linux shell中輸入setup 彈出password for root 但密碼輸不進去該咋辦
這是linux的輸入風格
即輸入密碼的時候游標不移動也不顯示星號
所以你看上去輸不進,其實已輸入了。所以你只要正常輸入,最後按回車就行了。
❾ [sudo] password for *** 後面怎麼輸不起密碼
[sudo] password for *** 後面輸不上密碼,是設置錯誤造成的,解決方法如下:
1、首先啟動Ubuntu,有圖形界面的,啟動終端即可。