Unit 5
/etc/passwd //用戶信息配置文件
一共七個屬性
用戶:密碼:uid:gid:說明:家目錄:用戶使用的shell(和系統對話打開的shell)//////etc/shells(系統法shell)
/etc/group //組信息配置文件
組名:組密碼:組ID:組內其它
新建一個用戶;linux
mkdir /home/linux //新建用戶家目錄
chown linux:linux /home/linux //
vim /etc/passwd //添加新用戶信息
vim /etc/group //添加組信息
su - linux //切換用戶
如何查看組信息
id student //查看student組的信息
組信息的一些參數
-u //用戶的uid
-g //用戶初始組id
-G //用戶所有所在組id
-n //顯示名字而不是id數字
-a //顯示所有信息
修改用戶建立時候的默認參數時,需要修改配置文件“/etc/login.defs”
userdel -r linux //刪除linux用戶信息
useradd linux //添加linux用戶信息***每次添加用戶操作之前,必須先刪除用戶的所有信息
useradd -g 2000 linux //添加用戶時指定初始組ID爲2000時,此ID必須存在,如果不存在,需要先添加一個初始組的ID
groupadd -g 2000 linux //添加初始組ID爲2000,添加完成後,再添加指定初始組ID爲2000的用戶linux。
監控用戶信息,組信息
watch -n 1 'tail -n 3 /etc/passwd /etc/group ;echo ========ls /home/' //監控/etc/passwd文件和/etc/group文件的後三行。 列出/home下的用戶名
修改用戶的信息的幾個參數:
usermod -c “hahaha” linux //更改說明爲“hahaha”
-d /home/linux westos //指定用戶家目錄
-s /bin/tcsh linux //默認與系統交互所使用的shell類型
-G ID 組名 //指定用戶附加組
usermod -u 2000 linux //修改用戶UID
usermod -g 72(此ID 必須存在) linux //修改用戶初始組ID
usermod -G 72 linux //修改用戶所有組ID
usermod -G "" linux //刪除用戶所有組
usermod -c “說明” linux // 修改說明
usermod -d /home/westos linux //修改用戶家目錄
usermod -md /home/linux linux // 更改家目錄指定及加目錄名稱
usermod -s /bin/csh //更改shell爲/bin/csh
usermod -L innux //凍結帳號
usermod -U linux //解鎖
---------------------------------------------------------
如何在不交互的情況下爲用戶修改密碼
stdin
echo admin|passwd --stdin admin //此命令就是將輸出的admin經過管道符轉譯後設置爲admin用戶的密碼。
----------------------------------------------------------
***用戶權力下放***
(1)在系統中,超級用戶可以下放普通用戶不能執行的操作給普通用戶
下放權力的配置文件:/etc/sudoers
(2)格式:
獲得權限用戶 主機名稱=(獲得的用戶身份) 命令
(3)執行下放權限命令
sudo 命令 //第一次執行sudo需要輸入當前用戶密碼
visudo命令編寫/etc/sudoers文件:
##Allow admin to create users on desktop8.example.com(主機名)//以#開頭的行爲註釋,並不執行。
admin(用戶名) desktop8.example.com(主機名)=(root)(用戶以什麼身份執行) /user/bin/useradd(用戶所執行的操作) //主機名的查看用hostname
執行useradd操作時命令行需進行調用。
sudo useradd westos(此爲要添加的用戶名)
如果想要在執行時不輸入密碼。則需要再修改/etc/sudoers文件
admin(用戶名) desktop8.example.com(主機名)=(root)(用戶以什麼身份執行) NOPASSWD: /user/bin/useradd(用戶所執行的操作) //表示用戶調用sudo命令的時候不需要自己密碼
usermod -L //鎖定用戶,密碼前加!
-U //解鎖密碼
passwd -l //鎖定用戶,密碼前加!!。鎖定更徹底
***用戶認證信息的控制***
chage -d 0 admin //"0"代表修改密碼前所使用的天數。即首次使用admin登陸系統系統會提示修改密碼。
chage -d 2 admin //"2"表示密碼的最短使用天數。即兩天之後纔可更改密碼。
chage -m 2 admin //修改密碼的最短有效期爲兩天,
chage -M 999 admin //修改最長有效期爲999天
chage -W 3 admin //修改警告期爲三天。
chage -I 2 admin //修改非活躍天數爲兩天。
chage -E "YY-MM--DD" admin //修改密碼到期日。
監控用戶密碼信息
watch -n 1 tail -n 1 /etc/shadow //**/etc/shadow的最後一行爲用戶admin的密碼信息。用這條命令來監控此密碼信息。
-----------------------------------------
Unit6
一.文件的權限
***查看文件的屬性***
ls -l filename(文件名)
執行ls -l /etc 後,會列出如下文件
total 1528
drwxr-xr-x. 3 root root 97 Dec 23 19:39 abrt
-rw-r--r--. 1 root root 18 Dec 23 19:45 adjtime
-rw-r--r--. 1 root root 1518 Jun 7 2013 aliases
-rw-r--r-- 1 root root 12288 Dec 23 11:46 aliases.db
drwxr-xr-x. 2 root root 4096 Dec 23 19:43 alternatives
-rw-------. 1 root root 541 Apr 21 2015 anacrontab
-rw-r--r--. 1 root root 55 Sep 16 2014 asound.conf
-rw-r--r--. 1 root root 1 Jun 22 2015 at.deny
drwxr-xr-x. 2 root root 31 Dec 23 19:40 at-spi2
drwxr-x---. 3 root root 41 Dec 23 19:39 audisp
drwxr-x---. 3 root root 79 Dec 23 11:46 audit
-rw-r--r--. 1 root root 12706 Sep 17 2015 autofs.conf
-rw-------. 1 root root 232 Sep 17 2015 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 795 Sep 17 2015 auto.master
drwxr-xr-x. 2 root root 6 Sep 17 2015 auto.master.d
-rw-r--r--. 1 root root 524 Sep 17 2015 auto.misc
-rwxr-xr-x. 1 root root 1260 Sep 17 2015 auto.net
-rwxr-xr-x. 1 root root 687 Sep 17 2015 auto.smb
drwxr-xr-x. 4 root root 94 Dec 23 19:42 avahi
***表示文件類型的參數***
drwxr-xr-x. 3 root root 97 Dec 23 19:39 abrt //“d”代表此文件類型爲目錄
-rw-r--r--. 1 root root 18 Dec 23 19:45 adjti //“-”代表文件類型爲普通文件
lrwxrwxrwx. 1 root root 22 Dec 23 19:45 chrony.conf -> chrony.conf-found // “l”代表文件類型爲連接文件
當然還有其他的一些表示文件類型的參數:
c //代表字符設備
s //代表套接字
p //管道
b //快設備
l //連接
d //目錄
- //普通文件
***文件的權限***
“r” //讀權限
“w” //寫權限
“x” //可執行權限
d|rwx|r-x|r-x. 3 root root 97 Dec 23 19:39 abrt //此文件類型爲目錄,所有人權限爲“rwx”,
所有組權限爲“r-x”,
其他人權限爲“r-x”
“3”表示此目錄的屬性大小,(如果這個文件不是目錄的話,那麼“3”代表系統記錄此文件的次數)
文件所有人爲root,
所有組爲root,
文件內容屬性大小爲97,
最近一次修改時間爲Dec 23 19:39,
文件名爲abrt。
***文件所有人所有組的管理***
chown username file/directory //更改文件的所有人
chown username:groupname file|directory //更改所有人所有組
chown -R username directory //更改目錄本身及裏面所有內容的所有人
chgrp -R groupname directory //更改目錄本身及裏面所與內容的所有組
這裏我們用/mnt目錄來操作
爲了更好的觀察修改所有人和所有組信息,我們可以打開一個新的監控窗口
監控命令:
watch -n 1 ls -lR /mnt
***文件的普通權限***
rw-|r--|r-- //這裏的第一個“rw-”代表所有人權限,一般用“u”來代表
// 第二個“r--”表示文件所有組權限,一般用“g”來代表
//第三個“r--”表示其他人即第三方權限,一般用“o”來代表
這裏的u,g,o分別表示的具體權限:
u:表示文件所有人對文件可以讀寫
g:表示文件組成員對文件可讀
o:表示其他人對文件可讀
(1)”r“的權限,對目錄和文件的操作含義是不同的
對文件:可以查看文件中的字符,就是讀取文件內容
對目錄:可以查看目錄中的文件信息,但並不能查看目錄中文件的具體內容。
(2)“w”的權限,和“r”相似
對文件:可以更改文件內字符。
對目錄:可以在目錄中添加刪除文件,但不能更改文件的具體內容。
(3)“x”權限
對文件:可以運行文件內記錄的程序動作
對目錄:可以進入目錄中
(4)字符方式修改文件的權限
具體形式:chmod <u|g|o><+|-|=><r|w|x> file|directory
//“ 命令 <所有人權限|所有組權限|第三方權限><+|-|=><讀|寫|可執行> 文件名|目錄名”
chmod u-x file //給file的所有人去掉x權限
chmod g+w file //給file的所有組添加w權限
chmod u-x,g+w file //給file的所有人去掉x權限,file所有組添加w權限
chmod ugo-r file //file的所有人,所有組,以及其他人都去掉r權限。(該file文件對任何人都不可讀)。
(5)數字方式修改該文件權限
在linux中 r=4
w=2
x=1
文件權限數字表示方式
rwx|rw-|r--
u=rwx=4+2+1=7
g=rw-=4+2+0=6
o=r--=4+0+0=4
那麼,該文件的權限用數字表示就爲764
chmod 修改後權限值 file
chmod 777 file //直接將file文件的權限修改爲777
表示權限的各個數字的所代表的權限:
0=---
1=--x
2=-w-
3=-wx
4=r--
5=r-x
6=rw-
7=rwx
所以我們通常表示權限的數字範圍在000-777,這裏不包括特殊權限
***系統默認權限的設定***
從系統存在角度來說,開放的權力越大,系統存在的意義越高
從系統的安全角度來說,開放的權力越少,系統的安全性越高
所以系統在設定新建文件或目錄時會去掉一些權限
***修改umask的值***
如果想要永久設定umask的值,需要修改兩個配置文件的內容,分別爲/etc/bashrc和/etc/profile
以上兩個文件umask設定值必須保持一致。
source /etc/bashrc
source /etc/profile //重新加載這兩個配置文件,讓設定的umask值立即生效。
***特殊權限***
(1)suid
針對二進制可執行文件
文件內記錄的程序產生的進程的所有人爲文件所有人,和進程發起人身份無關
設定方式:
chmod u+s file
在linux中這裏的s權限代表數字爲4
chmod 4xxx file
(2)sgid
對文件來說:只針對二進制可執行文件,任何人運行二進制文件,運行時程序產生的進程所有組都是文件的所有組, 和程序發起人組的身份無關。
對目錄:當目錄擁有sgid權限後,目錄中新建的所有文件的所有組都自動歸屬到目錄的所有組之中,和文件建立者所在的組無關
設定方式:
chmod g+s file|dir
這裏的s權限代表數字2
chmod 2xxx file|dir
(3)sticky
t權限:只針對目錄,當一個目錄上有t權限,那麼目錄中的文件只能被所有人刪除
設定方式:
chmod o+t directory
這裏t用數字表示爲1
chmod 1777 directory
ps ax -o user,group,comm | grep watch //過濾watch命令的進程,並提取出該進程的所有人,用戶組,命令。
chgrp student /bin/watch //修改組爲student
ls -l /bin/watch //查看此命令的信息