用戶
計算機的使用者;實現資源隔離;
1964年,Multics項目出現多用戶、多任務的操作系統;當時Multics主機價格很昂貴,通常是多個終端連入一個主機,實現多個用戶共用一個主機;多個用戶共同使用一個主機上資源就會存在一些問題;互相之間是否可能刪除對方的數據及查看對方的數據;為了避免這些問題:就必須資源隔離;
計算機如何識別用戶是聲稱的用戶?
認證:通過識別機制與某用戶建立關聯關系;
識別機制:暗號、密碼、指紋、虹膜 …
- 暗號:天王蓋地虎,寶塔震…
- 密碼:將密碼存儲在文件中,用戶輸入密碼后,將輸入的密碼與文件中存儲的密碼比對;相同時則通過認證;
計算機易識別的是數字,我們鍵入的用戶名是字符,計算機如何將用戶名轉換為可識別的數字?
計算機用16位二進制數唯一標識每個用戶;0-65535
名稱解析:將用戶名轉換為計算機標識用戶的唯一數字的過程,此數字叫UID:Username –> UID
- 解析過程:根據用戶輸入用戶名為標準,去查找存儲密碼的解析庫,找出名稱對應的值;
- 解析庫:/etc/passwd
- 解析庫可存儲位置:文本文件、mysql、nosql、ldap
密碼存儲在文本文件中,是明文存放,其他用戶了可以查看;需要加密后存放;
加密:明文轉換為密文
加密算法
- 對稱加密:加密和解密同一個密鑰;
- 非對稱加密:加密和解密是一對兒密鑰;
- 單向加密:提取指紋;只能加密不能解密常與salt連用,避免相同密碼顯示相同字串;
授權:? ?owner:用戶對資源的使用級別;
審計:用戶使用資源的合理性;
用戶組
一種角色、容器;用戶選擇了一種角色,就代表此用戶就擁了角色所擁有的權限、責任;
權限
用戶對資源操作方式通過權限定義;
用戶訪問文件通過進程:進程的身份是進程的發起者;
進程對文件的訪問權限:
- 進程的發起者同文件屬主應用屬主的權限;
- 進程的發起者屬于文件屬組應用屬組的權限
- 否則應用其他用戶的權限
權限:mode:r,w,x
文件:
- r: 查看內容
- w: 修改內容
- x:運行為一個進程
目錄:
- r: ls
- w: 目錄中可刪除和創建文件
- x:可cd進目錄,ls -l查看目錄;
用戶的類型:
- 管理員:0
- 普通用戶:
- 系統用戶:CentOS6: 1-499, CentOS7: 1-999 系統用戶:為后臺進程或服務提供的運行身份;
- 登陸用戶:c6: 500-60000, c7: 1000-60000
組的類型:
- 普通組(系統用戶組、登陸用戶組)、管理組;
- 私有組、公共組:組內用戶數 私有組:組內只有一個與用戶名同名的組;
- 基本組、附加組:用戶
用戶管理類命令:groupadd, groupmod, groupdel, useradd, usermod, userdel, passwd, gpasswd, newgrp, chage, chsh, chfn, finger, su, id
groupadd 添加組
groupadd [options] group
-g, --gidGID 自定義GID;默認是上一個組的GID+1;
-r, --system 創建系統組;
添加組:
[root@localhost ~]# groupadd mageedu
[root@localhost ~]# tail -1 /etc/group
mageedu:x:500:
添加系統組:
[root@localhost ~]# groupadd -r mygrp
[root@localhost ~]# tail -1 /etc/group
mygrp:x:499:
添加GID為5200的elastic組:
[root@localhost ~]# groupadd -g 5200 elastic
[root@localhost ~]# tail -1 /etc/group
elastic:x:5200:
默認:
[root@localhost ~]# groupadd kibana
[root@localhost ~]# tail -1 /etc/group
kibana:x:5201:
groupmod 修改組屬性
groupmod [選項] GROUP
-g, --gidGID 修改GID
-n, --new-nameNEW_GROUP 改變組名
將elastic組GID修改為7777:
[root@localhost ~]# groupmod -g 7777 elastic
[root@localhost ~]# tail -3 /etc/group
elastic:x:7777:
...
將elastic組名修改為fedora:
[root@localhost ~]# groupmod -n fedora elastic
[root@localhost ~]# tail -3 /etc/group
fedora:x:7777:
...
groupdel 刪除組
groupdel GROUP
刪除fedora組:
[root@localhost ~]# groupdel fedora
[root@localhost ~]# tail -3 /etc/group
useradd 添加用戶或更新默認用戶信息;/usr/sbin/adduser: symbolic link to `useradd’
useradd [選項] 登錄名
-u, --uid UID 指定UID號;默認UID+1;
-g, --gid GROUP 指定基本組ID,此組得事先存在;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]] 用戶的附加組,多個間用逗號分隔;
-c, --comment COMMENT 注釋信息;
-d, --home-dir HOME_DIR 創建以指定的路徑為用戶的家目錄;通過復制/etc/skel此目錄并重命名實現;指定的家目錄路徑如果事先存在,則不會復制文件;
-s, --shell SHELL 默認shell,可用的所有常規shell列表存儲在/etc/shells文件當中;
-r, --system 系統用戶;
-m, --create-home
-M, --no-create-home 不為用戶創建主目錄 CREATE_HOME yes 自動創建
-f, --inactive INACTIVE
注意:創建用戶時的諸多默認設定配置文件為/etc/login.defs;
useradd -D [OPTION]... 操作/etc/default/useradd文件;
# useradd -D 顯示創建用戶的默認配置;
GROUP=100 添加同名私有組
HOME=/home 非系統組時,家目錄位置
INACTIVE=-1 非活動期,禁用;
EXPIRE= 過期期限:永不過期;
SHELL=/bin/bash 默認SHELL
SKEL=/etc/skel 復制用戶骨架信息
CREATE_MAIL_SPOOL=yes 是否為用戶創建郵筒;/var/spool/mail/USERNAME 為用戶創建郵筒
-s, --shellSHELL
添加gentoo用戶:
[root@localhost ~]# useradd gentoo
[root@localhost ~]# tail -1 /etc/passwd
gentoo:x:500:5202::/home/gentoo:/bin/bash
添加UID為5200的redhat用戶:
[root@localhost ~]# useradd -u 5200 redhat
[root@localhost ~]# tail -1 /etc/passwd
redhat:x:5200:5200::/home/redhat:/bin/bash
添加以gentoo為基本組的centos用戶:
[root@localhost ~]# useradd -g gentoo centos
[root@localhost ~]# tail -1 /etc/passwd
centos:x:5201:5202::/home/centos:/bin/bash
[root@localhost ~]# id centos
uid=5201(centos) gid=5202(gentoo) groups=5202(gentoo)
添加以gentoo為附加組的debian用戶:
[root@localhost ~]# useradd -G gentoo debian
[root@localhost ~]# id debian
uid=5202(debian) gid=5203(debian) groups=5203(debian),5202(gentoo)
添加以"SUSE Linux Enterprise System"為注釋信息的sles用戶:
[root@localhost ~]# useradd -c "SUSE Linux Enterprise System" sles
[root@localhost ~]# tail -1 /etc/passwd
sles:x:5203:5204:SUSE Linux Enterprise System:/home/sles:/bin/bash
創建以/var/tmp/knopix為家目錄的knopix用戶:
[root@localhost ~]# useradd -d /var/tmp/knopix knopix
[root@localhost ~]# tail -1 /etc/passwd
knopix:x:5204:5205::/var/tmp/knopix:/bin/bash
創建默認shell為/bin/csh的ubuntu用戶:
[root@localhost ~]# useradd -s /bin/csh ubuntu
[root@localhost ~]# tail -1 /etc/passwd
ubuntu:x:5205:5206::/home/ubuntu:/bin/csh
創建系統用戶mint:
[root@localhost ~]# useradd -r mint
[root@localhost ~]# tail -1 /etc/passwd
mint:x:498:498::/home/mint:/bin/bash
創建opensuse用戶不為其創建家目錄:
[root@localhost ~]# useradd -M opensuse
[root@localhost ~]# tail -1 /etc/passwd
opensuse:x:5206:5207::/home/opensuse:/bin/bash
[root@localhost ~]# ls /home
centos debian gentoo lost+found redhat sles ubuntu
查看默認配置:
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
修改默認SHELL為/bin/csh:
[root@localhost ~]# useradd -D -s /bin/csh
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
usermod 修改默認屬性
usermod [選項] 登錄
-u, --uid UID 修改用戶的ID為此處指定的新UID;
-g, --gid GROUP 修改用戶所屬的基本組為此處所指的GROUP;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]] 修改用戶所屬的附加組,原來的附加組會被覆蓋;以逗號分隔的列表;
-a, --append 與-G一同使用,用于為用戶追加新的附加組;
-c, --comment COMMENT 修改注釋信息;
-d, --home-dir HOME_DIR 修改用戶的家目錄;用戶原有的文件不會被轉移至新位置;
-m, --move-home 與-d一同使用,用于將原來的家目錄移動為新的家目錄;
-l, --login NEW_LOGIN 修改用戶名;
-s, --shell SHELL 修改用戶的默認shell為此處指定的SHELL;
-L, --lock 鎖定用戶密碼;即在用戶原來的密碼字符串之前添加一個"!";
-U, --unlock 解鎖用戶的密碼;
修改gentoo用戶的UID為5202:
[root@localhost ~]# id gentoo
uid=500(gentoo) gid=5202(gentoo) groups=5202(gentoo)
[root@localhost ~]# usermod -u 5202 gentoo
[root@localhost ~]# id gentoo
uid=5202(gentoo) gid=5202(gentoo) groups=5202(gentoo)
修改gentoo用戶的基本組為mageedu:
[root@localhost ~]# usermod -g mageedu gentoo
[root@localhost ~]# id gentoo
uid=5202(gentoo) gid=500(mageedu) groups=500(mageedu)
為gentoo用戶添加附加組為gentoo和knopix:
[root@localhost ~]# usermod -a -G gentoo,knopix gentoo
[root@localhost ~]# id gentoo
uid=5202(gentoo) gid=500(mageedu) groups=500(mageedu),5202(gentoo),5205(knopix)
修改gentoo的注釋為"...":
[root@localhost ~]# usermod -c '...' gentoo
[root@localhost ~]# tail /etc/passwd
gentoo:x:5202:500:...:/home/gentoo:/bin/bash
...
修改gentoo用戶的家目錄為/var/tmp/gentoo:
[root@localhost ~]# usermod -d /var/tmp/gentoo gentoo
[root@localhost ~]# tail /etc/passwd
gentoo:x:5202:500:...:/var/tmp/gentoo:/bin/bash
...
[root@localhost ~]# su - gentoo
su: warning: cannot change directory to /var/tmp/gentoo: No such file or directory
-bash-4.1$
修改gentoo用戶的家目錄,原家目錄中的文件一并移動;
[root@localhost ~]# usermod -m -d /home/gentoo gentoo
[root@localhost ~]# usermod -m -d /var/tmp/gentoo gentoo
[root@localhost ~]# su - gentoo
[gentoo@localhost ~]$
修改gentoo用戶名為archlinux:
[root@localhost ~]# usermod -l archlinux gentoo
[root@localhost ~]# tail -1 /etc/passwd
archlinux:x:5202:500:...:/var/tmp/gentoo:/bin/bash
修改archlinux默認shell為/bin/csh:
[root@localhost ~]# usermod -s /bin/csh archlinux
[root@localhost ~]# tail -1 /etc/passwd
archlinux:x:5202:500:...:/var/tmp/gentoo:/bin/csh
鎖定archlinux用戶:
[root@localhost ~]# echo "mageedu" | passwd --stdin archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:17446:0:99999:7:::
[root@localhost ~]# usermod -L archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:!$6$aKSNkmc.$Q/nA8K/79vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:17446:0:99999:7:::
注意:在第二個字段前多了一個"!"。
解鎖archlinux用戶:
[root@localhost ~]# usermod -U archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:17446:0:99999:7:::
userdel 刪除用戶
userdel [選項] 登錄
-r, --remove 刪除用戶時一并刪除其家目錄;默認不會刪除;
刪除debian用戶保留家目錄:
[root@localhost ~]# userdel debian
[root@localhost ~]# ls /home
centos debian gentoo lost+found redhat sles ubuntu
[root@localhost ~]# id debian
id: debian: No such user
刪除ubuntu用戶不保留其家目錄:
[root@localhost ~]# userdel -r ubuntu
[root@localhost ~]# ls /home
centos debian gentoo lost+found redhat sles
passwd 更新用戶密碼
passwd [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
passwd 修改用戶自己的密碼
passwd USERNAME 修改指定用戶的密碼,但僅root有此權限;
-l,-u 鎖定和解鎖用戶;!! ;同usermod -L,-U !
-d 清除用戶密碼串;
-e 立即過期
-i DAYS: 非活動期限,天;
-w DAYS: 警告期限;
-x DAYS: 密碼的最長使用期限;
-n DAYS: 密碼的最短使用期限;
--stdin:從標準輸入獲取密碼;
# echo "magedu" | passwd --stdin docker &> /dev/null
# echo $? 執行狀態結果為0成功;
為centos用戶添加mageedu密碼:
[root@localhost ~]# passwd centos
Changing password for user centos.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# tail -1 /etc/shadow
centos:$6$.Vk1LX6r$zhLaN7.VOOO33MwxOLVKfWDr8gONZn5wvAxteVvSfaSRgnAPQuX6BCakiBQLDpEl9y2Ff3SLxMT5uE9I0dxkE/:17446:0:99999:7:::
...
鎖定centos用戶:
[root@localhost ~]# passwd -l centos
[root@localhost ~]# tail /etc/shadow
centos:!!$6$.Vk1LX6r$zhLaN7.VOOO33MwxOLVKfWDr8gONZn5wvAxteVvSfaSRgnAPQuX6BCakiBQLDpEl9y2Ff3SLxMT5uE9I0dxkE/:17446:0:99999:7:::
...
注意:在第二個字段是"!!",比usermod -L鎖定多了一個!;
解鎖centos用戶:
[root@localhost ~]# passwd -u centos
[root@localhost ~]# tail /etc/shadow
centos:$6$.Vk1LX6r$zhLaN7.VOOO33MwxOLVKfWDr8gONZn5wvAxteVvSfaSRgnAPQuX6BCakiBQLDpEl9y2Ff3SLxMT5uE9I0dxkE/:17446:0:99999:7:::
...
修改centos用戶最短密碼使用期限為25天:
[root@localhost ~]# passwd -n 25 centos
[root@localhost ~]# tail /etc/shadow
centos:$6$.Vk1LX6r$zhLaN7.VOOO33MwxOLVKfWDr8gONZn5wvAxteVvSfaSRgnAPQuX6BCakiBQLDpEl9y2Ff3SLxMT5uE9I0dxkE/:17446:25:99999:7:::
...
修改centos用戶最長密碼使用期限為520天:
[root@localhost ~]# passwd -x 520 centos
[root@localhost ~]# tail /etc/shadow
centos:$6$.Vk1LX6r$zhLaN7.VOOO33MwxOLVKfWDr8gONZn5wvAxteVvSfaSRgnAPQuX6BCakiBQLDpEl9y2Ff3SLxMT5uE9I0dxkE/:17446:25:520:7:::
...
修改centos警告期為10天;
[root@localhost ~]# passwd -w 10 centos
[root@localhost ~]# tail /etc/shadow
centos:$6$.Vk1LX6r$zhLaN7.VOOO33MwxOLVKfWDr8gONZn5wvAxteVvSfaSRgnAPQuX6BCakiBQLDpEl9y2Ff3SLxMT5uE9I0dxkE/:17446:25:520:10:::
...
修改centos非活動期限77天:
[root@localhost ~]# passwd -i 77 centos
[root@localhost ~]# tail /etc/shadow
centos:$6$.Vk1LX6r$zhLaN7.VOOO33MwxOLVKfWDr8gONZn5wvAxteVvSfaSRgnAPQuX6BCakiBQLDpEl9y2Ff3SLxMT5uE9I0dxkE/:17446:25:520:10:77::
...
修改centos立即過期:
[root@localhost ~]# passwd -e centos
newgrp 臨時切換指定組為基本組;
newgrp [-] [group]
- 會模擬用戶重新登錄以實現重新初始化其工作環境;
臨時切換mygrp為基本組:
[root@localhost ~]# newgrp mygrp
[root@localhost ~]# id
uid=0(root) gid=499(mygrp) groups=499(mygrp),0(root)
chage 更改用戶密碼過期信息
chage [選項] 登錄名
-d,最近修改密碼時間
-m,min
-M, max
-W, warn
-I, inactive
-E, expire
修改archlinux用戶最近修改密碼時間:
[root@localhost ~]# chage -d 1 archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:1:0:99999:7:::
修改archlinux用戶最短密碼使用期限為12天:
[root@localhost ~]# chage -m 12 archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:1:12:99999:7:::
修改archlinux用戶最長密碼使用期限為5200天:
[root@localhost ~]# chage -M 5200 archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:1:12:5200:7:::
修改archlinux警告期為13天;
[root@localhost ~]# chage -W 13 archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:1:12:5200:13:::
修改archlinux非活動期限90天:
[root@localhost ~]# chage -I 90 archlinux
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:1:12:5200:13:90:::
修改archlinux過期時間20500101:
[root@localhost ~]# tail -1 /etc/shadow
archlinux:$6$aKSNkmc.$Q/nA8K/80vUx9bF4duP3X1w7PEjDl6QMH.FWclqGAno81Ez6.qyrt4WyFB6OePvzpldPa6tls7OhbqxOcpHVQ1:1:12:5200:13:90:20500101:
id 顯示用戶的實際或有效ID
id [OPTION]... [USER]
id 顯示自己
-u, --user 僅顯示有效的UID;
-g, --group 僅顯示用戶的基本組ID;
-G, --groups 僅顯示用戶所屬的所有組ID;
-n, --name 顯示名字而非ID;與以上選項連用;
顯示archlinux用戶ID:
[root@localhost ~]# id archlinux
uid=5202(archlinux) gid=500(mageedu) groups=500(mageedu),5202(gentoo),5205(knopix)
顯示archlinux用戶UID及用戶名:
[root@localhost ~]# id -u archlinux
5202
[root@localhost ~]# id -un archlinux
archlinux
顯示archlinux用戶GID及私有組名:
[root@localhost ~]# id -g archlinux
500
[root@localhost ~]# id -gn archlinux
mageedu
顯示archlinux用戶所有組及組名:
[root@localhost ~]# id -G archlinux
500 5202 5205
[root@localhost ~]# id -Gn archlinux
mageedu gentoo knopix
su switch user
登陸式切換:會通過讀取目標用戶shell環境的配置文件來重新初始化;
su - USERNAME
su -l USERNAME
非登陸式切換:不會讀取目標用戶shell環境的配置文件來重新初始化;
su USERNAME
注意:管理員可無密碼切換至其它任何用戶;非管理員必須給出密碼切換至其它用戶;
-c 'COMMAND' 僅以指定用戶的身份運行此處指定的COMMAND;
登陸切換至archlinux:
[root@localhost ~]# su - archlinux
[archlinux@localhost ~]$ pwd
/var/tmp/gentoo
非登陸切換至archlinux:
[root@localhost ~]# su archlinux
[archlinux@localhost /root]$ pwd
/root
finger 用戶信息查詢工具
Login: docker Name:
Directory: /home/docker Shell: /bin/bash
Last login 五 10月 6 21:41 (EDT) on pts/5
No mail.
No Plan.
chfn 修改用戶注釋信息;
chfn [user]
[root@localhost ~]# chfn archlinux
Changing finger information for archlinux.
Name [...]: ArchLinux
Office []: 96168
Office Phone []: 96168
Home Phone []: 96168
Finger information changed.
[root@localhost ~]# tail -1 /etc/passwd
archlinux:x:5202:500:ArchLinux,96168,96168,96168:/var/tmp/gentoo:/bin/csh
chsh 修改用戶shell;
chsh [OPTION] [user]
-s, --shell shell
[root@localhost ~]# chsh archlinux
Changing shell for archlinux.
New shell [/bin/csh]: /bin/bash
Shell changed.
[root@localhost ~]# tail -1 /etc/passwd
archlinux:x:5202:500:ArchLinux,96168,96168,96168:/var/tmp/gentoo:/bin/bash
whoami 當前有效用戶
[root@localhost ~]# whoami
root
pwck 檢查密碼文件異常
[root@localhost ~]# pwck
user 'adm': directory '/var/adm' does not exist
user 'uucp': directory '/var/spool/uucp' does not exist
user 'gopher': directory '/var/gopher' does not exist
user 'ftp': directory '/var/ftp' does not exist
user 'saslauth': directory '/var/empty/saslauth' does not exist
user 'mint': directory '/home/mint' does not exist
pwck: no changes
grpck 檢查組文件異常
權限命令: chmod
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
-R, --recursive 遞歸修改目錄及目錄下所有文件的權限;常用于授權表示法及賦權表示法;
三類用戶:
- u:屬主
- g:屬組
- o:其它
- a:所有
(1) chmod [OPTION]… MODE[,MODE]… FILE…
MODE表示法:
賦權表示法:修改一類或多類用戶的“所有”權限位:同時指定多類用戶時需要用逗號分隔;
u=
g=
o=
u=,g=
u=,g=,o=
ug=
go=
...
修改當前目錄下所有文件屬主權限為空;屬組權限為空;
[root@localhost ~]# chmod u=,g= ./*
[root@localhost ~]# ll
total 32
----------. 1 root root 2248 Oct 7 08:12 anaconda-ks.cfg
-------r--. 1 root root 16910 Oct 7 08:12 install.log
-------r--. 1 root root 5820 Oct 7 08:10 install.log.syslog
授權表示法:修改一類或多類用戶的“一位”權限位;
u+
u-
g+
g-
o+
o-
a+ 或 +
a- 或 -
u+,g+
...
+w:僅對屬主有效;
修改當前目錄下所有文件:屬主權限給予讀寫權限;屬組權限給予讀權限:
[root@localhost ~]# chmod u+rw,g+r ./*
[root@localhost ~]# ll
total 32
-rw-r-----. 1 root root 2248 Oct 7 08:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 16910 Oct 7 08:12 install.log
-rw-r--r--. 1 root root 5820 Oct 7 08:10 install.log.syslog
給當前目錄下所有文件所有權限位附加寫權限;
[root@localhost ~]# chmod +w ./*
[root@localhost ~]# ll
total 32
-rw-r-----. 1 root root 2248 Oct 7 08:12 anaconda-ks.cfg
-rw-r--r--. 1 root root 16910 Oct 7 08:12 install.log
-rw-r--r--. 1 root root 5820 Oct 7 08:10 install.log.syslog
(2) chmod [OPTION]… OCTAL-MODE FILE…
OCTAL-MODE:八進制權限位;
[root@localhost ~]# chmod 600 ./*
[root@localhost ~]# ll
total 32
-rw-------. 1 root root 2248 Oct 7 08:12 anaconda-ks.cfg
-rw-------. 1 root root 16910 Oct 7 08:12 install.log
-rw-------. 1 root root 5820 Oct 7 08:10 install.log.syslog
(3) chmod [OPTION]… –reference=RFILE FILE…
參考一個文件的權限修改當前文件;
[root@localhost ~]# chmod --reference=/var/log/wtmp ./*
[root@localhost ~]# ll
total 32
-rw-rw-r--. 1 root root 2248 Oct 7 08:12 anaconda-ks.cfg
-rw-rw-r--. 1 root root 16910 Oct 7 08:12 install.log
-rw-rw-r--. 1 root root 5820 Oct 7 08:10 install.log.syslog
從屬關系管理命令:chown, chgrp
chown:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
-R, --recursive 遞歸修改目錄及目錄下所有文件的屬主、屬組;
注意:OWNER:GROUP 和 OWNER.GROUP都可使用;
修改當前目錄下所有文件的屬主為archlinux:
[root@localhost ~]# chown archlinux ./*
[root@localhost ~]# ll
total 32
-rw-rw-r--. 1 archlinux root 2248 Oct 7 08:12 anaconda-ks.cfg
-rw-rw-r--. 1 archlinux root 16910 Oct 7 08:12 install.log
-rw-rw-r--. 1 archlinux root 5820 Oct 7 08:10 install.log.syslog
修改當前目錄下所有文件的屬主為root,屬組為knopix:
[root@localhost ~]# chown root:knopix ./*
[root@localhost ~]# ll
total 4
-rw-------. 1 root knopix 1260 Oct 6 16:03 anaconda-ks.cfg
-rw-r--r--. 1 root knopix 0 Oct 6 19:47 install.log
-rw-r--r--. 1 root knopix 0 Oct 6 19:47 install.log.syslog
修改當前目錄下所有文件的屬組為archlinux:
[root@localhost ~]# chown .archlinux ./*
[root@localhost ~]# ll
total 4
-rw-------. 1 root archlinux 1260 Oct 6 16:03 anaconda-ks.cfg
-rw-r--r--. 1 root archlinux 0 Oct 6 19:47 install.log
-rw-r--r--. 1 root archlinux 0 Oct 6 19:47 install.log.syslog
參考/var/log/yum.log屬主和屬組修改當前目錄下所有文件的屬主和屬組:
[root@localhost ~]# chown --reference=/var/log/yum.log ./*
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1260 Oct 6 16:03 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Oct 6 19:47 install.log
-rw-r--r--. 1 root root 0 Oct 6 19:47 install.log.syslog
chgrp:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
修改當前目錄下所有文件的屬組為archlinux:
[root@localhost ~]# chgrp archlinux ./*
[root@localhost ~]# ll
total 4
-rw-------. 1 root archlinux 1260 Oct 6 16:03 anaconda-ks.cfg
-rw-r--r--. 1 root archlinux 0 Oct 6 19:47 install.log
-rw-r--r--. 1 root archlinux 0 Oct 6 19:47 install.log.syslog
參考/var/log/yum.log屬組修改當前目錄下install.log文件:
[root@localhost ~]# chgrp --reference=/var/log/yum.log install.log
[root@localhost ~]# ll
total 4
-rw-------. 1 root archlinux 1260 Oct 6 16:03 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Oct 6 19:47 install.log
-rw-r--r--. 1 root archlinux 0 Oct 6 19:47 install.log.syslog
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88240
總結的非常的好,從內容到格式看得出很用心的在做的?;镜恼莆罩螅梢陨钊肓私庖幌铝硗馊齻€特殊權限位,suid,sgid和sticky位,加油。