[TOC]
linux中的權限管理
手工創(chuàng)建一個用戶
[root@bogon ~]# vim /etc/passwd
[root@bogon ~]# vim /etc/passwd
[root@bogon ~]# vim /etc/shadow
[root@bogon ~]# vim /etc/shadow
[root@bogon ~]# vim /etc/group
[root@bogon ~]# vim /etc/gshadow
[root@bogon ~]# mkdir /home/jack
[root@bogon ~]# cp -r /etc/skel/.[!.]* /home/jack/
[root@bogon ~]# chown -R jack.jack /home/jack/
[root@bogon ~]# touch /var/spool/mail/jack
[root@bogon ~]# chown -R jack.mail /var/spool/mail/jack
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]# id jack
uid=1204(jack) gid=1203 組=1203
- 與用戶(user)和用戶組(group)相關的配置文件;
- 與用戶(user)相關的配置文件捍掺;
/etc/passwd 注:用戶(user)的配置文件;
/etc/shadow 注:用戶(user)影子口令文件;
- 與用戶組(group)相關的配置文件框沟;
/etc/group 注:用戶組(group)配置文件;
/etc/gshadow 注:用戶組(group)的影子文件增炭;
- 管理用戶(user)和用戶組(group)的相關工具或命令忍燥;
- 管理用戶(user)的工具或命令;
useradd 注:添加用戶
adduser 注:添加用戶
passwd 注:為用戶設置密碼
usermod 注:修改用戶命令弟跑,可以通過usermod 來修改登錄名灾前、用戶的家目錄等等防症;
pwcov 注:同步用戶從/etc/passwd 到/etc/shadow
pwck 注:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整孟辑;
pwunconv 注:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創(chuàng)建/etc/passwd 蔫敲,然后會刪除 /etc/shadow 文件饲嗽;
finger 注:查看用戶信息工具
id 注:查看用戶的UID、GID及所歸屬的用戶組
chfn 注:更改用戶信息工具
su 注:用戶切換工具
sudo 注:sudo 是通過另一個用戶來執(zhí)行命令(execute a command as another user)奈嘿,su 是用來切換用戶貌虾,然后通過切換到的用戶來完成相應的任務,但sudo 能后面直接執(zhí)行命令裙犹,比如sudo 不需要root 密碼就可以執(zhí)行root 賦與的執(zhí)行只有root才能執(zhí)行相應的命令尽狠;但得通過visudo 來編輯/etc/sudoers來實現(xiàn);
visudo 注:visodo 是編輯 /etc/sudoers 的命令叶圃;也可以不用這個命令袄膏,直接用vi 來編輯 /etc/sudoers 的效果是一樣的;
sudoedit 注:和sudo 功能差不多掺冠;
- 管理用戶組(group)的工具或命令沉馆;
groupadd 注:添加用戶組;
groupdel 注:刪除用戶組;
groupmod 注:修改用戶組信息
groups 注:顯示用戶所屬的用戶組
grpck
grpconv 注:通過/etc/group和/etc/gshadow 的文件內容來同步或創(chuàng)建/etc/gshadow 斥黑,如果/etc/gshadow 不存在則創(chuàng)建揖盘;
grpunconv 注:通過/etc/group 和/etc/gshadow 文件內容來同步或創(chuàng)建/etc/group ,然后刪除gshadow文件锌奴;
- /etc/skel 目錄兽狭;
/etc/skel目錄一般是存放用戶啟動文件的目錄,這個目錄是由root權限控制鹿蜀,當我們添加用戶時椭符,這個目錄下的文件自動復制到新添加的用戶的家目錄下;/etc/skel 目錄下的文件都是隱藏文件耻姥,也就是類似.file格式的销钝;我們可通過修改、添加琐簇、刪除/etc/skel目錄下的文件蒸健,來為用戶提供一個統(tǒng)一、標準的婉商、默認的用戶環(huán)境似忧;
[root@localhost beinan]# ls -la /etc/skel/
總用量 92
drwxr-xr-x 3 root root 4096 8月 11 23:32 .
drwxr-xr-x 115 root root 12288 10月 14 13:44 ..
-rw-r--r-- 1 root root 24 5月 11 00:15 .bash_logout
-rw-r--r-- 1 root root 191 5月 11 00:15 .bash_profile
-rw-r--r-- 1 root root 124 5月 11 00:15 .bashrc
-rw-r--r-- 1 root root 5619 2005-03-08 .canna
-rw-r--r-- 1 root root 438 5月 18 15:23 .emacs
-rw-r--r-- 1 root root 120 5月 23 05:18 .gtkrc
drwxr-xr-x 3 root root 4096 8月 11 23:16 .kde
-rw-r--r-- 1 root root 658 2005-01-17 .zshrc
/etc/skel 目錄下的文件,一般是我們用useradd 和adduser 命令添加用戶(user)時丈秩,系統(tǒng)自動復制到新添加用戶(user)的家目錄下盯捌;如果我們通過修改 /etc/passwd 來添加用戶時,我們可以自己創(chuàng)建用戶的家目錄蘑秽,然后把/etc/skel 下的文件復制到用戶的家目錄下饺著,然后要用chown 來改變新用戶家目錄的屬主;
linux文件系統(tǒng)權限
chmod命令是非常重要的肠牲,用于改變文件或目錄的訪問權限幼衰。用戶用它控制文件或目錄的訪問權限。
該命令有兩種用法缀雳。一種是包含字母和操作符表達式的文字設定法渡嚣;另一種是包含數(shù)字的數(shù)字設定法。
1. 文字設定法
chmod [who] [+ | - | =] [mode] 文件名?
命令中各選項的含義為:
操作對象who可是下述字母中的任一個或者它們的組合:
u 表示“用戶(user)”肥印,即文件或目錄的所有者识椰。
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶深碱。
o 表示“其他(others)用戶”腹鹉。
a 表示“所有(all)用戶”。它是系統(tǒng)默認值莹痢。
操作符號可以是:
+ 添加某個權限种蘸。
- 取消某個權限墓赴。
= 賦予給定權限并取消其他所有權限(如果有的話)。
設置mode所表示的權限可用下述字母的任意組合:
r 可讀航瞭。
w 可寫诫硕。
x 可執(zhí)行。
X 只有目標文件對某些用戶是可執(zhí)行的或該目標文件是目錄時才追加x 屬性刊侯。
s 在文件執(zhí)行時把進程的屬主或組ID置為該文件的文件屬主章办。方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位滨彻。
t 保存程序的文本到交換設備上藕届。
u 與文件屬主擁有一樣的權限。
g 與和文件屬主同組的用戶擁有一樣的權限亭饵。
o 與其他用戶擁有一樣的權限休偶。
文件名:以空格分開的要改變權限的文件列表,支持通配符辜羊。
在一個命令行中可給出多個權限方式踏兜,其間用逗號隔開。例如:chmod g+r八秃,o+r example
使同組和其他用戶對文件example 有讀權限碱妆。
2. 數(shù)字設定法
我們必須首先了解用數(shù)字表示的屬性的含義:0表示沒有權限,1表示可執(zhí)行權限昔驱,2表示可寫權限疹尾,4表示可讀權限,然后將其相加骤肛。所以數(shù)字屬性的格式應為3個從0到7的八進制數(shù)纳本,其順序是(u)(g)(o)。
例如萌衬,如果想讓某個文件的屬主有“讀/寫”二種權限饮醇,需要把4(可讀)+2(可寫)=6(讀/寫)。
數(shù)字設定法的一般形式為:
chmod [mode] 文件名?
- 例子:
1. 文字設定法:
例1:$ chmod a+x sort
即設定文件sort的屬性為:
文件屬主(u) 增加執(zhí)行權限
與文件屬主同組用戶(g) 增加執(zhí)行權限
其他用戶(o) 增加執(zhí)行權限
例2:$ chmod ug+w秕豫,o-x text
即設定文件text的屬性為:
文件屬主(u) 增加寫權限
與文件屬主同組用戶(g) 增加寫權限
其他用戶(o) 刪除執(zhí)行權限
例3:$ chmod u+s a.out
假設執(zhí)行chmod后a.out的權限為(可以用ls – l a.out命令來看):
–rws--x--x 1 inin users 7192 Nov 4 14:22 a.out
并且這個執(zhí)行文件要用到一個文本文件shiyan1.c,其文件存取權限為“–rw-------”观蓄,即該文件只有其屬主具有讀寫權限混移。
當其他用戶執(zhí)行a.out這個程序時,他的身份因這個程序暫時變成inin(由于chmod命令中使用了s選項)侮穿,所以他就能夠讀取shiyan1.c這個文件(雖然這個文件被設定為其他人不具備任何權限)歌径,這就是s的功能。
因此亲茅,在整個系統(tǒng)中特別是root本身回铛,最好不要過多的設置這種類型的文件(除非必要)這樣可以保障系統(tǒng)的安全狗准,避免因為某些程序的bug而使系統(tǒng)遭到入侵。
例4:$ chmod a–x mm.txt
$ chmod –x mm.txt
$ chmod ugo–x mm.txt
以上這三個命令都是將文件mm.txt的執(zhí)行權限刪除茵肃,它設定的對象為所有使用者腔长。
2. 數(shù)字設定法:
例1: $ chmod 644 mm.txt
$ ls –l
即設定文件mm.txt的屬性為:
-rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt
文件屬主(u)inin 擁有讀、寫權限
與文件屬主同組人用戶(g) 擁有讀權限
其他人(o) 擁有讀權限
例2: $ chmod 750 wch.txt
$ ls –l
-rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt
即設定wchtxt這個文件的屬性為:
文件主本人(u)inin 可讀/可寫/可執(zhí)行權
與文件主同組人(g) 可讀/可執(zhí)行權
其他人(o) 沒有任何權限
chgrp命令
功能:改變文件或目錄所屬的組验残。
語法:chgrp [選項] group filename?
該命令改變指定指定文件所屬的用戶組捞附。其中group可以是用戶組ID,也可以是/etc/group文件中用戶組的組名您没。文件名是以空格分開的要改變屬組的文件列表鸟召,支持通配符。如果用戶不是該文件的屬主或超級用戶氨鹏,則不能改變該文件的組欧募。
該命令的各選項含義為:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組。
例1:$ chgrp - R book /opt/local /book
改變/opt/local /book/及其子目錄下的所有文件的屬組為book仆抵。
chown 命令
功能:更改某個文件或目錄的屬主和屬組槽片。這個命令也很常用。例如root用戶把自己的一個文件拷貝給用戶xu肢础,為了讓用戶xu能夠存取這個文件还栓,root用戶應該把這個文件的屬主設為xu,否則传轰,用戶xu無法存取這個文件剩盒。
語法:chown [選項] 用戶或組 文件
說明:chown將指定文件的擁有者改為指定的用戶或組。用戶可以是用戶名或用戶ID慨蛙。組可以是組名或組ID辽聊。文件是以空格分開的要改變權限的文件列表,支持通配符期贫。
該命令的各選項含義如下:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者跟匆。
- v 顯示chown命令所做的工作。
例1:把文件shiyan.c的所有者改為wang通砍。
$ chown wang shiyan.c
例2:把目錄/his及其下的所有文件和子目錄的屬主改成wang玛臂,屬組改成users。
$ chown - R wang.users /his