天天看點

linux使用者和檔案目錄管理

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

1001 2001

[root@node01 ~]# id -u -n user3

user3

[root@node01 ~]# id -g -n user3

user1

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 組名稱

[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 

繼續閱讀