useradd相關補充:
1.新建一個用戶創建時的一些默認權限在/etc/default/useradd配置中
2.新建用戶家目錄的過程實際就是將/etc/skel中的所有文件,拷貝到新建用戶的/home下,并更改為改用戶的用戶名
3.批量新建用戶:newusers
例:先創建一個文本文檔,寫入要創建于passwd格式相同的文件
1,vim users.txt
用戶名:密碼:uid:gid:描述信息:家目錄:shell
user1:x:501:501::/home/user1:/bin/bash
user2:x:502:502::/home/user2:/bin/bash
2, newusers users.txt
批量修改用戶密碼
1,vim passwd.txt
user1:user1
user2:user2
2, cat passwd.txt | chpasswd
4.還有其他的一些默認配置在/etc/login.defs
用戶屬性的一些修改:
1.usermod:修改用戶
-u: 修改uid
-g:修改gid
-G:修改用戶的附加組(特別注意,當追加用戶的附加組時,要配合a選項,否則直接覆蓋用戶的附加組)
-s:修改用戶的shell類型
-d:修改家目錄的位置(當新的家目錄不存在時,-d選項不會自動創建,要加-m選項,自動創建家目錄, 并將原有家目錄下的文件移動到新的家目錄中)
-L:鎖定用戶
-U:解鎖用戶
-e:指定用戶過期日期 時間日期的格式是2000-10-10
-f:修改用戶寬限時間
例:修改user1用戶的一些相關信息
usermod -u 600 -g 600 -Ga(追加附加組) user2 -s /bin/csh -dm /tmp/user2
查看用戶有幾個附加組用groups
清空所以附加組:usermod -G "" user1
擴展技巧:拷貝/etc/skel下的所有目錄來恢復家目錄
cp -r /etc/skel/. /tmp/user1
2.userdel:刪除用戶
-r:刪除家目錄
注意:當刪除用戶時,也會同時刪除這個用戶的屬組,當這個用戶的屬組是其他用戶的附加組時,這個用戶的屬組不能被刪除
3.id:顯示用戶關于id的一些信息
-u:顯示用戶id號
-n:顯示用戶名(要配合-u使用,顯示用戶名)
-g:顯示組id號(同樣要配合-u使用,顯示組名)
-G:顯示附加組
4.su:切換用戶
su 用戶名:不讀取用戶的配置信息,切換后保存原有目錄不變
su – 用戶名:完全切換
-c:用其他用戶執行一條命令時,用-c 例 su – user1 -c 'pwck'
5.設置口令:passwd
-l:鎖定用戶
-u:解鎖用戶 當用戶密碼為空時,解鎖用戶默認不允許解鎖,要用-f選項強制解鎖
-e:強制用戶下次登錄時修改口令
-n:設置最短修改時間
-x:設置最長修改時間
-w:設置警告時間
-i:設置寬限時間
–stdin:標準輸入 例:echo 1234 | passwd –stdin user1
也可以用 echo user1:1234 | chpasswd 修改口令
6 chage:修改密碼策略
-E:最長密碼有效期
-m:最短修改時間
-M:最長修改時間
-I:設置寬限時間
-W:警告時間
可以不加任何選項,以交互的方式修改
chage user1
其他命令擴展:
chfn:修改usermod 修改的是(useradd -c 說明信息)
chsh:修改shell
finger 指定格式修改用戶說明信息
組:
1.groupadd:創建組
groupadd+選項+組名
-r:創建系統組
-g:指明gid
groups + 用戶:查看用戶屬于哪個組
2.groupmems:查看組信息(修改輔助組)
groupmems -l -g 組名
-a:追加用戶(需要有-g選項) 例 groupmems -a user1(用戶名) -g group2(組名)
也可以用id+用戶名看附加組信息
3.groupmod:修改組信息
-g:修改組id
-n:修改組名
4.groupdel:刪除組 groupdel + 組名
5.gpasswd:更改組密碼
gpasswd + 組名 (修改方式是交互式的)
-a:添加用戶到組 gpassed -a user1(用戶) group1(組)
-d:刪除組內一個用戶
-A:將用戶設置為管理員 gpasswd -A user group1
文件權限:
1.文件的權限主要有3個對象
a.屬主
b.屬組
c.其他用戶
2.每個對象對應的權限:
r w x
d rwx r-x r-x. 2 root root 6 Jul 21 11:40 Desktop
文件類型 屬主的權限 屬組的權限 其他用戶權限 屬主 屬組
3.chown:修改文件的屬主
chown 屬主 文件名
也可以同時修改屬主屬組:[chown 屬主:屬組 文件名] chown user1:group1 file1
-R:表示遞歸修改
補充:chown user1: file1 說明:這條命令表示將file1文件的屬主屬組同時改成user1
chown :group1 file1 這條命令表示將file1文件的屬組改成group1,屬主不變
4.chgrp:修改文件的屬組
-R:遞歸
chgrp group1 file1
5.chmod:修改文件權限
1.授權修改:
chmod u=.. ,g=.. ,o=.. file1
chmod u+.. ,g+.. ,o+.. file1
或者chmod a=.. or a+.. file1
(..用rwx代替)
2.數值修改
chmod 777 file1
3.參考修改
chmod –reference=file2 file1
6.文件的權限
r: 可以ls
x:可以cd 讀cat目錄內文件內容
w:配合x能刪能創建
遞歸給權限時X可以只給文件夾x權限,不給文件夾內文件的x權限
用數字表示權限
rwx:111 rw-:110等
7.補充說明:
a.只有root可以修改文件的屬主,即使是文件的屬主也不能修改文件屬主
b.chgrp 文件的屬組可以在屬主的附加組內轉換
umask:
1.umask:這條命令可以查看默認umask值
對于目錄:可以理解成777-umask值=新建目錄的默認權限
對于文件:可以理解成667-umask值=新建文件的默認權限
因為linux默認對文件沒有執行權限
本質:從最大權限屏蔽掉權限問得出最后權限
應該是權限位相減,對于文件來說如果原來沒有執行權限,那么即使umask為奇數,也不減執行x的權限位
2.默認值:
umask + 屏蔽權限位
例 umask 002
以上這種寫法只是臨時有效
修改.bashrc 可以永久有效,修改后不會立即生效,執行. .bashrc,立即生效
對于root用戶來說,默認的umask=022
對于其他用戶來說,默認的umask=002
在/etc/profile和/etc/bashrc文件中定義的
-p:顯示umask值
return:umask 022
實際用法:umask -p >> ~/.bashrc
文件的特殊權限:
1.suid:表示其他用戶可以臨時擁有[二進制文件]屬主的執行權限 ,在屬主的權限位的x位變成s位
chmod u+s file1
實例:/bin/passwd
擁有suid的文件要特別小心,它可以讓其它用戶擁有二進制文件的屬主的權限
2.sgid:表示其他用戶臨時繼承擁有了[二進制文件或者目錄]的組的權限,在屬組的權限位的x變成s
chmod g+s file1
實例:對于目錄來說有2個用戶屬于目錄的屬組,那么他們所建立的文件的屬組變為他們所在目錄的屬組
例:drwxrwsrwx user1 group1 dir1
user2和user3都屬于group1那么他們所建立的文件的屬組都為group1
若是other其他用戶,那么需要看other是否又權限,如果有,那么他們所建的文件的屬組依然是group1
3.sticky:只能作用在目錄上,鎖定目錄內的其他用戶所建文件不被刪除
實例:/tmp/目錄
文件的特殊屬性:
1. chattr:
+i:不能被刪除改名,和修改 chattr +i file1
+a:只可以增加,不能刪除 chattr +a file1
2.lsattr:查看文件的特定屬性
ACL訪問控制列表:
1.setfacl:setfacl + 選項 + u/g/o : 用戶名、組名 : 權限 + 文件
-m:增加
setfacl -m u:user1:rw file1
-x:刪除權限
setfacl -x u:user1 file1
-b:清空所有acl權限
setfacl -b file1
-R:遞歸
setfacl -Rm g:group1:rwX dir1
-M:調用已經寫好的文件的acl
1.echo “u:user1:rw” > acl.txt
2.setfacl -M acl.txt file1
-X:減去調用的文件
u前面加d
setfacl -m d:u:user1:rw dir1
表示在dir1 這個目錄下用戶user1所創建的文件默認有rw權限
2.mask:限制除所有者和other外的人
包括用acl允許的用戶、組和文件本身的屬組
setfacl -m mask::rw file1
作業:
1. 復制/etc/fstab文件到/var/tmp下,設置文件所有者為wangcai讀寫權限,所屬組為sysadmins組有讀寫權限,其他人無權限
cp /etc/fstab /var/tmp/
useradd wangcai
groupadd sysadmins
chown wangcai:sysadmins /var/tmp/fstab
chmod u=rw,g=rw,o= /var/tmp/fstab
2.誤刪除了用戶wangcai的家目錄,請重建并恢復該用戶家目錄及相應的權限屬性
useradd wangcai
rm -rvf /home/wangcai
cp -r /etc/skel/. /home/wangcai
chown wangcai:wangcai /home/wangcai
useradd user1
[root@localhost ~]# chmod –reference=/home/user1 /home/wangcai
[root@localhost ~]# chmod –reference=/home/user1/.bashrc /home/wangcai/.bashrc
[root@localhost ~]# chmod –reference=/home/user1/.gnome2/ /home/wangcai/.gnome2/
[root@localhost ~]# chmod –reference=/home/user1/.mozilla/ /home/wangcai/.mozilla/
[root@localhost ~]# chmod –reference=/home/user1/.bash_logout /home/wangcai/.bash_logout
[root@localhost ~]# chmod –reference=/home/user1/.bash_profile /home/wangcai/.bash_profile
3.在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。
groupadd g1
groupadd g2
groupadd g3
mkdir -p /data/testdir
chmod g=rwx /data/testdir
chgrp g1 /data/testdir
chmod g+s /data/testdir
useradd alice
groupmems -a alice -g g2
setfacl -Rm g:g2:rwx /data/testdir
gpasswd -a tom g3
setfacl -Rm g:g3:rx /data/testdir
chmod o= /data/testdir
4.創建組sales,gid 3000,passwd:centos,sales admins:user2
將用戶user1,user2,user3加入到sales輔助組
希望user1 創建新文件 默認的所屬組為sales
user2將用戶user3從sales組移除
刪除sales,user1,user2
groupadd -g 3000 sales
gpasswd sales
centos
useradd user1
useradd user2
useradd user3
gpasswd -A user2 sales
gpasswd -a user1 sales
groupmems -a user2 -g sales
usermod -aG sales user3
su user1
newgrp sales
exit
su user2
gpasswd -d user2 sales
passwd -d user1 sales
passwd -d user3 sales
groupdel sales
5.三種權限,三種特殊,acl,chattr 總結
a.三種權限分為 r w x
每個目錄和文件都有屬主、屬組、和其他用戶。三種所有者分別對應 r w x
只有r權限: 可以ls
只有寫權限: 無任何意義
只有執行權限: 可以cd cat
b.三種特殊權限suid、sgid、sticky
suid:只作用于二進制文件有效,當屬組內的其他用戶或者other用戶有執行權限,那么這些用戶就臨時擁有了這個二進制文件屬主的權限
sgid:作用于二進制文件和目錄,作用類似于suid
sticky:作用于目錄,鎖定目錄內的文件不被修改。當這個目錄的屬主屬組有rwx權限,也不可以刪除目錄下other用戶所建立的文件
c.acl訪問控制列表
一些傳統的權限只能限制屬主、屬組、other,對于制定用戶、組就要用acl實現
d.chattr鎖定文件不被刪除,修改,重命名
原創文章,作者:landanhero,如若轉載,請注明出處:http://www.www58058.com/27769
總結的很好,如果能舉例說明,那就更好了