Linux使用者及權限管理
使用者管理
多使用者多任務的作業系統
使用者類型
管理者使用者 root
普通使用者
系統使用者/程式使用者
使用者相關的檔案:
/etc/passwd 使用者資訊
格式:
使用者名:x:UID:GID:說明資訊:SHELL
UID:
1000---60000
0---999 系統使用者
SHELL:
/bin/bash 預設
/sbin/nologin 系統使用者
/etc/shadow 使用者密碼資訊
使用者:
基本組
附加組 使用者userA -----> 使用者組userA; caiwu, shichang, jishu, yanfa
1、建立使用者
# useradd [option] 使用者名稱
option選項:
1) -u UID 指定使用者的uid
[root@node01 ~]# useradd -u 2000 user2
[root@node01 ~]# id user2
uid=2000(user2) gid=2000(user2) 組=2000(user2)
[root@node01 ~]#
2) 指定使用者的基本組、附加組
-g gid/組名稱
-G gid/組名稱,...
[root@node01 ~]# groupadd caiwu
[root@node01 ~]# useradd -g user1 -G caiwu user3
[root@node01 ~]# id user3
uid=2001(user3) gid=1001(user1) 組=1001(user1),2001(caiwu)
3) 指定使用者shell名稱
-s shell名稱
-M 不建立宿主目錄
[root@node01 ~]# useradd -s /sbin/nologin -M apache
4) 建立系統使用者
-r
[root@node01 ~]# useradd -r mysql
5) 指定使用者的宿主目錄
[root@node01 ~]# useradd -d /tmp/hadoop hadoop
2、切換使用者
# su - 使用者名稱
3、檢視使用者id資訊
[root@node01 ~]# id user1
uid=1001(user1) gid=1001(user1) 組=1001(user1)
[root@node01 ~]# id -u user3
2001
[root@node01 ~]# id -g user3
1001
[root@node01 ~]# id -G user3
1001 2001
[root@node01 ~]# id -u -n user3
user3
[root@node01 ~]# id -g -n user3
user1
[root@node01 ~]# id -G -n user3
user1 caiwu
4、設定使用者密碼
# passwd [option] [使用者名稱]
[root@node01 ~]# passwd user1
1) 檢視使用者密碼狀态
[root@node01 ~]# passwd -S user1
user1 PS 2017-04-11 0 99999 7 -1 (密碼已設定,使用 SHA512 算法。)
2) 鎖定使用者密碼(不能登入)
[root@node01 ~]# passwd -l user1
鎖定使用者 user1 的密碼 。
passwd: 操作成功
user1 LK 2017-04-11 0 99999 7 -1 (密碼已被鎖定。)
3) 解鎖使用者密碼
[root@node01 ~]# passwd -u user1
解鎖使用者 user1 的密碼。
4) 強制使用者密碼過期
[root@node01 ~]# passwd -e user1
正在終止使用者 user1 的密碼。
5、修改使用者資訊
# usermod [option] 使用者名稱
-u UID
-g 組名稱
-G 組名稱
[root@node01 ~]# usermod -aG caiwu user3
uid=2001(user3) gid=1001(user1) 組=1001(user1),2001(caiwu),2004(shichang)
6、删除使用者
# userdel [option] 使用者名稱
[root@node01 ~]# userdel user1
[root@node01 ~]# userdel -r user2 >>>同時删除使用者的宿主目錄
使用者組管理
1、建立使用者組
# groupadd 使用者組名稱
2、删除使用者組
# groupdel 使用者組名稱
[root@node01 ~]# groupadd jishu
[root@node01 ~]# useradd tom
[root@node01 ~]# useradd mike
[root@node01 ~]# useradd jerry
[root@node01 ~]# usermod -G jishu tom
[root@node01 ~]# usermod -G jishu jerry
[root@node01 ~]# usermod -G jishu mike
[root@node01 ~]# grep "jishu" /etc/group
jishu:x:2005:tom,jerry,mike
[root@node01 ~]# gpasswd -d tom jishu
正在将使用者“tom”從“jishu”組中删除
jishu:x:2005:jerry,mike
使用者操作環境配置檔案:
從/etc/skel目錄複制而來
[root@node01 ~]# ls -a /home/userA/
. .. .bash_logout .bash_profile .bashrc .mozilla
.bashrc 打開新終端 /etc/bashrc
.bash_profile 使用者登入系統 /etc/profile
.bash_logout 登出系統
示例:設定指令别名
# alias 指令别名='指令'
針對單個使用者設定别名:
[root@node01 ~]# vim /home/userA/.bashrc
alias ipshow='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@node01 ~]# source /home/userA/.bashrc
針對所有使用者設定别名:
[root@node01 ~]# vim /etc/bashrc
[root@node01 ~]# source /etc/bashrc
檔案目錄權限管理
正常權限:
r read 讀取 4
w write 寫入 2
x execute 執行 1
檔案:
r 檢視檔案内容(cat/more/less/head/tail/grep)
w 編輯檔案内容(vim)
x shell/python腳本
目錄:
r 檢視目錄下的檔案(ls /tmp)
w 修改目錄下的檔案(建立、删除、mv)
x 切換目錄(cd)
檢視檔案權限
[root@node01 ~]# ls -l /etc/fstab
-rw-r--r--. 1 root root 465 7月 28 2016 /etc/fstab
檢視目錄權限
[root@node01 ~]# ls -ld /etc/
drwxr-xr-x. 136 root root 8192 4月 11 13:48 /etc/
設定檔案目錄權限
1) chmod 修改權限
# chmod {augo}{+-=}{rwx} 檔案名稱
a all 所有
u user 屬主使用者
g group 屬組
o other 其他
[root@node01 ~]# chmod a+x /test/1.txt
[root@node01 ~]# chmod g=rw /test/3.txt
# chmod nnn 檔案名稱
[root@node01 ~]# chmod 600 /test/4.txt
2) 修改檔案的屬主、屬組
# chown 使用者名稱.使用者組名稱 檔案名稱
[root@node01 ~]# chown user1.caiwu /test/1.txt
[root@node01 ~]# chown user1 /test/2.txt
[root@node01 ~]# chown root.caiwu /test/4.txt
僅修改屬組:
# chgrp 使用者組名稱 檔案名稱
[root@node01 ~]# chgrp caiwu /test/3.txt
方法2) facl ---- 檔案通路控制清單
設定權限:
針對單個使用者設定權限
# setfacl -m u:使用者名:權限 檔案名稱
[root@node01 ~]# setfacl -m u:user4:r /test/3.txt
[root@node01 ~]# getfacl /test/3.txt
getfacl: Removing leading '/' from absolute path names
# file: test/3.txt
# owner: user1
# group: user3
user::rw-
user:user4:r--
group::rwx
mask::rwx
other::r-x
針對單個使用者組設定權限
# setfacl -m g:使用者組名稱:權限 檔案名稱
删除facl權限
針對單個使用者删除權限
# setfacl -x u:使用者名 檔案名稱
[root@node01 ~]# setfacl -x u:user4 /test/3.txt
針對單個使用者組删除權限
# setfacl -x g:使用者組名稱 檔案名稱
特殊權限:
suid 4
sgid 2
sticky bit 1 # chmod 644 file01 # chmod 6644 file02 # chmod 2700
1、suid
作用:普通使用者在執行指令期間,會臨時擷取到指令屬主使用者對作業系統的權限
[root@node01 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
設定suid權限
# chmod u+s 檔案名稱
2、sgid
針對目錄設定
作用:目錄擁有sgid權限後,在目錄下新建立的檔案會繼承目錄的屬組資訊
設定sgid權限
# chmod g+s 目錄名稱
[root@node01 ~]# ls -ldh /linux/
drwxr-sr-x. 2 root caiwu 18 4月 11 15:37 /linux/
3、sticky bit
作用:
隻有目錄下檔案的屬主使用者、目錄屬主使用者及root可删除該檔案
[root@node01 ~]# ls -ldh /tmp/
drwxrwxrwt. 8 root root 4.0K 4月 11 15:45 /tmp/
設定sticky bit權限
# chmod o+t 目錄名稱
chmod, chown, chgrp, setfacl
共同選項:-R
本文轉自 北冥有大魚 51CTO部落格,原文連結:http://blog.51cto.com/lyw168/1957697,如需轉載請自行聯系原作者