天天看點

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

[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,如需轉載請自行聯系原作者