linux用戶和文件目錄管理

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 

相關文章
相關標籤/搜索