Linux用戶及權限管理node
用戶管理 python
多用戶多任務的操做系統 mysql
用戶類型linux
管理員用戶 root算法
普通用戶sql
系統用戶/程序用戶shell
用戶相關的文件:apache
/etc/passwd 用戶信息 vim
格式:bash
用戶名:x:UID:GID:說明信息:SHELL
UID:
1000---60000
0---999 系統用戶
SHELL:
/bin/bash 默認
/sbin/nologin 系統用戶
/etc/shadow 用戶密碼信息
用戶:
基本組
附加組 用戶userA -----> 用戶組userA; caiwu, shichang, jishu, yanfa
一、建立用戶
# 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 ~]#
[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
二、切換用戶
# su - 用戶名稱
三、查看用戶id信息
[root@node01 ~]# id user1
uid=1001(user1) gid=1001(user1) 組=1001(user1)
[root@node01 ~]# id user3
uid=2001(user3) gid=1001(user1) 組=1001(user1),2001(caiwu)
[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
[root@node01 ~]#
四、設置用戶密碼
# 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: 操做成功
[root@node01 ~]# passwd -S user1
user1 LK 2017-04-11 0 99999 7 -1 (密碼已被鎖定。)
3) 解鎖用戶密碼
[root@node01 ~]# passwd -u user1
解鎖用戶 user1 的密碼。
passwd: 操做成功
[root@node01 ~]# passwd -S user1
user1 PS 2017-04-11 0 99999 7 -1 (密碼已設置,使用 SHA512 算法。)
[root@node01 ~]#
4) 強制用戶密碼過時
[root@node01 ~]# passwd -e user1
正在終止用戶 user1 的密碼。
passwd: 操做成功
五、修改用戶信息
# usermod [option] 用戶名稱
-u UID
-g 組名稱
-G 組名稱
-s shell名稱
[root@node01 ~]# usermod -aG caiwu user3
[root@node01 ~]# id user3
uid=2001(user3) gid=1001(user1) 組=1001(user1),2001(caiwu),2004(shichang)
六、刪除用戶
# userdel [option] 用戶名稱
[root@node01 ~]# userdel user1
[root@node01 ~]# userdel -r user2 >>>同時刪除用戶的宿主目錄
用戶組管理
一、建立用戶組
# groupadd 用戶組名稱
二、刪除用戶組
# 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」組中刪除
[root@node01 ~]# grep "jishu" /etc/group
jishu:x:2005:jerry,mike
[root@node01 ~]#
用戶操做環境配置文件:
從/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
alias ipshow='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[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
一、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 文件名稱
二、sgid
針對目錄設置
做用:目錄擁有sgid權限後,在目錄下新建立的文件會繼承目錄的屬組信息
設置sgid權限
# chmod g+s 目錄名稱
[root@node01 ~]# ls -ldh /linux/
drwxr-sr-x. 2 root caiwu 18 4月 11 15:37 /linux/
三、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