日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用户、组及权限控制

發布時間:2024/1/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用户、组及权限控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶、組及權限控制

用戶及組管理、用戶及權限管理

1,用戶和組管理

1,資源分派

Authentication 認證:識別用戶
Authorization 授權:
Accoutiog 審計

token,identity (username/password)

2,Linux用戶:

Username/UID(UserID)
管理員:root,0
普通用戶:1-65535
系統用戶:

  守護進程獲取資源進行權限分配

    1-499(centos 6),1-999(centos 7)不同的發行版會不同
  登錄用戶(交互式登錄):500+(centos 6),1000+(centos 7)

3,Linux用戶組:

Groupname/GID(GroupID)
管理員組:root,0
普通組:
系統組:1-499(centos 6),1-999(centos 7)
普通組:500+(centos 6),1000+(centos 7)

4,Linux安全上下文

運行中的程序:進程(process)

以進程發起者的身份運行
進程所能夠訪問的所有資源的權限取決于進程的發起者的身份

5,Linux組的類別

用戶的基本組(主組):

  組名同用戶名,且僅包含一個用戶,即私有組
用戶的附加組(額外組)

6,Linux用戶和組相關的配置文件:

  /etc/passwd 用戶及其屬性信息(名稱、GID、基本組ID等)
  /etc/group 組及其屬性信息
  /etc/shadow 用戶密碼及其相關屬性
  /etc/gshadow 組密碼及其相關屬性

/etc/passwd     

  name:password:UID:GID:GECOS:directory:shell

    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin

  用戶名:密碼占位符:UID:GID(用戶的基本組ID):GECOS(用戶的備注信息):主目錄:默認shell

/etc/group
  group_name:password:gid:user_list
  組名:組密碼占位符:GID:以當前組為附加組的用戶列表(分隔符為逗號)

/etc/shadow

  user1: :17684:0:99999:7: : :
  ①用戶名

 ?、诩用芰说拿艽a

 ?、圩罱淮胃拿艽a的日期(相對時間,上次修改密碼到unix元年經過的天數)

  ④密碼的最小使用期限

 ?、菝艽a的最大使用期限

 ?、廾艽a警告時間段

 ?、呙艽a禁用期(非活動期限)

  ⑧賬號過期日期(從 unix 元年到該日期經過的天數)

  ⑨保留字段

順序:① : ② : ③ : ④ : ⑤ : ⑥ : ⑦ : ⑧ : ⑨

  加密機制:
    加密:明文-->密文
    解密:密文-->明文

    單向加密:提取數據指紋
      md5: message digest 消息摘要 128bits
      sha1: secure hash algorithm 安全的哈希算法 160bits
      sha224:224bits
      sha256:256bits
      sha384:384bits
      sha512:512bits

      雪崩效應:初始條件的微小改變,將會引起結果的巨大改變;蝴蝶效應;

      定長輸出

  密碼的復雜性策略
    1、使用數字、大寫字母、小寫字母及特殊字符中至少3種
    2、足夠的長度;
    3、不要使用易猜測密碼,使用隨機密碼
    4、定期更換;不要使用最近曾經使用過的密碼

7,用戶和組相關的管理命令

①用戶創建:useradd

useradd [option] LOGIN

用法:useradd [選項] 登錄useradd -Duseradd -D [選項]選項:-b, --base-dir BASE_DIR 新賬戶的主目錄的基目錄-c, --comment COMMENT 新賬戶的 GECOS 字段-d, --home-dir HOME_DIR 新賬戶的主目錄-D, --defaults 顯示或更改默認的 useradd 配置-e, --expiredate EXPIRE_DATE 新賬戶的過期日期-f, --inactive INACTIVE 新賬戶的密碼不活動期-g, --gid GROUP 新賬戶主組的名稱或 ID-G, --groups GROUPS 新賬戶的附加組列表-h, --help 顯示此幫助信息并推出-k, --skel SKEL_DIR 使用此目錄作為骨架目錄-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默認值-l, --no-log-init 不要將此用戶添加到最近登錄和登錄失敗數據庫-m, --create-home 創建用戶的主目錄-M, --no-create-home 不創建用戶的主目錄-N, --no-user-group 不創建同名的組-o, --non-unique 允許使用重復的 UID 創建用戶-p, --password PASSWORD 加密后的新賬戶密碼-r, --system 創建一個系統賬戶-R, --root CHROOT_DIR chroot 到的目錄-s, --shell SHELL 新賬戶的登錄 shell-u, --uid UID 新賬戶的用戶 ID-U, --user-group 創建與用戶同名的組-Z, --selinux-user SEUSER 為 SELinux 用戶映射使用指定 SEUSER

  -u UID: UID=[UID_MIN,UID_MAX] , 定義在/etc/login.defs

    UID: 用戶 ID 的數字值。此值必須為唯一的,除非使用了 -o

  -g GID: 指明用戶所屬的基本組,可以為組名,也可以為GID,注意:組名或GID必須已經存在 

  -c "COMMENT" :“用戶的注釋信息”

[root@localhost ~]# useradd -c "I am ben." ben [root@localhost ~]# tail -1 /etc/passwd ben:x:502:502:I am ben.:/home/ben:/bin/bash

  -d /PATH/TO/HOME/DIR 以指定的路徑為家目錄,注意:提前條件,該目錄事先不存在,如果存在,則報錯

[root@localhost ~]# useradd -d /tmp/centos cento [root@localhost ~]# tail -1 /etc/passwd cento:x:503:503::/tmp/centos:/bin/bash[root@localhost ~]# mkdir /tmp/test [root@localhost ~]# useradd -d /tmp/test test useradd: warning: the home directory already exists. Not copying any file from skel directory into it.

  -s SHELL 指明用戶的默認shell程序,可用列表在/etc/shells 文件中

[root@localhost ~]# useradd -s /bin/tcsh docker [root@localhost ~]# tail -1 /etc/passwd docker:x:505:505::/home/docker:/bin/tcsh

  -G?GROUP1[,GROUP2,...[,GROUPN]]]: 為用戶指明附加組,組必須事先存在,多個附加組之間用逗號分隔

[root@localhost ~]# useradd -G test,docker centos [root@localhost ~]# id centos uid=506(centos) gid=506(centos) groups=506(centos),504(test),505(docker)

  -r: 創建系統用戶

   centos 6 id < 500
   centos 7 id < 1000

[root@localhost ~]# useradd -r zabbix [root@localhost ~]# cat /etc/passwd | grep "zabbix" zabbix:x:496:493::/home/zabbix:/bin/bash

默認值設定:/etc/default/useradd文件中 比如使用 useradd -D -s /etc/tcsh 來改變默認的shell

? ??練習:創建用戶gentoo,附加組為distro和linux,默認shell為/bin/csh,注釋信息為"gentoo distribution"

useradd -G distro,linux -s /bin/csh -c "gentoo distribution" gentoo[root@localhost ~]# useradd -G distro,linux -s /bin/csh -c "gentoo distribution" gentoo [root@localhost ~]# tail -1 /etc/passwd gentoo:x:508:508:gentoo distribution:/home/gentoo:/bin/csh [root@localhost ~]# id gentoo uid=508(gentoo) gid=508(gentoo) groups=508(gentoo),1503(distro),1504(linux)

②groupadd:組創建

groupadd [OPTION].. group_name

-g GID: 指明GID號,[GID_MIN,GID_MAX] 定義在/etc/login.defs

[root@localhost ~]# groupadd -g 2001 cook [root@localhost ~]# tail -1 /etc/group cook:x:2001:

-r:創建系統組
  centos 6 id < 500
  centos 7 id < 1000

[root@localhost ~]# groupadd -r jobs [root@localhost ~]# cat /etc/group | grep "jobs" jobs:x:492:

③id: 查看用戶相關的ID信息

id [OPTION]... [USER]

 -u: UID 顯示UID

 -g: GID 顯示GID基本組id

 -G: Groups 顯示所有GID

 -n: NAME顯示用戶名或用戶組名

④su: 切換用戶或以其他用戶身份執行命令

  su [OPTION] [-] [user [args...]]

  切換用戶的方式:
    su UserName: 非登錄式切換,即不會讀取目標用戶的配置文件
    su - UserName: 登錄式切換,會讀取目標用戶的配置文件,完全切換

    注意:root用戶su到其他用戶無須密碼;非root用戶切換時需要密碼;

  換個身份執行命令
    su [-] UserName -c ‘COMMAND‘? 僅僅只是使用另一個用戶來執行命令,不進行用戶切換。
     [root@localhost?~]# su - tom -c ‘echo $PATH‘
    /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tom/bin

    選項:
     -l "su -l username"相當于"su - username" 相當于登錄式切換

[root@localhost ~]# su -l tom [tom@localhost ~]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tom/bin

 sudo?

  sudo可以針對單個命令授予臨時權限

  使用visudo進行修改,可以提示報錯

⑤usermod: 用戶屬性修改

usermod [OPTION] login

  -u UID: 新的UID

[root@localhost ~]# usermod -u 2002 tom [root@localhost ~]# id -u tom 2002

  -g GID: 新的基本組id 可以是組名或者gid 注意:前提條件,新的基本組必須事先存在

[root@localhost ~]# usermod -g cook tom [root@localhost ~]# id -g tom 2001[root@localhost ~]# usermod -g 508 tom [root@localhost ~]# id -g tom 508

  -G GROUP1,GROUP2...GROUP# 新的附加組,原來的附加組將會覆蓋,若保留原有,則要同時使用-a選項,表示append -a選項必須作為首選項

[root@localhost ~]# usermod -G gentoo,linux tom [root@localhost ~]# id tom uid=2002(tom) gid=508(gentoo) groups=508(gentoo),1504(linux)[root@localhost ~]# usermod -a -G cook tom [root@localhost ~]# id tom uid=2002(tom) gid=508(gentoo) groups=508(gentoo),1504(linux),2001(cook)

  -s SHELL 新的默認shell

[root@localhost ~]# usermod -s /bin/tcsh tom [root@localhost ~]# cat /etc/passwd | grep "tom" tom:x:2002:508::/home/tom:/bin/tcsh

  -c "COMMENT": 新的注釋信息[root@localhost?~]# usermod -c "I am tom." tom

[root@localhost ~]# usermod -c "I am tom." tom [root@localhost ~]# cat /etc/passwd | grep "tom" tom:x:2002:508:I am tom.:/home/tom:/bin/tcsh

  -d HOME_DIR: 新的家目錄,原有家目錄中的文件不會同時移動至新的家目錄,若要移動,則同時使用-m選項

[root@localhost ~]# usermod -d /home/tom2 -m tom [root@localhost ~]# cat /etc/passwd | grep "tom" tom:x:2002:508:I am tom.:/home/tom2:/bin/tcsh

  -l LOGIN_NAME: 新的名字

[root@localhost ~]# usermod -l tom123 tom [root@localhost ~]# cat /etc/passwd | grep "tom123" tom123:x:2002:508:I am tom.:/home/tom2:/bin/tcsh

  -L: lock指定用戶,鎖定用戶的密碼,這會在用戶加密的密碼之前放置一個“!”

[root@localhost ~]# usermod -L tom [root@localhost ~]# cat /etc/shadow | grep "tom" tom:!$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7:::

  -U: unlock指定用戶,解鎖用戶的密碼,這樣移除加密的密碼之前的“!”

[root@localhost ~]# usermod -U tom [root@localhost ~]# cat /etc/shadow | grep "tom" tom:$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7:::

  -e YYYY-MM-DD: 指定用戶賬號的過期日期 禁用日期 (從unix元年到該日期經過的天數)

[root@localhost ~]# usermod -e 2018-12-12 tom [root@localhost ~]# cat /etc/shadow | grep "tom" tom:$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7::17877:

  -f INACTIVE: 設定非活動期限

[root@localhost ~]# cat /etc/shadow | grep "tom" tom:$6$Xab6yTDv$GEqYjEyz/4yBqcsVLLbLrgGQu4McQCq3DXwGzeCAW4jOobf7Jb3fJovrtCb70R1JZYLYZYYau.oCR5iKTVBCC.:17622:0:99999:7:10:17877:

⑥passwd:?給用戶添加密碼

 passwd [OPTION] UserName 修改指定用戶的密碼,僅root用戶有權限

 passwd: 修改自己的密碼

[root@localhost ~]# passwd 更改用戶 root 的密碼 。 新的 密碼: 無效的密碼: 密碼少于 8 個字符 重新輸入新的 密碼: passwd:所有的身份驗證令牌已經成功更新。

常用選項:
 -l: 鎖定指定用戶, 在/etc/shadow 密碼加密字段的前面加入"!!"

 -u: 解鎖指定用戶, 在/etc/shadow 密碼加密字段的前面移除"!!"

 -n mindays: 指定最短使用期限

[root@localhost ~]# passwd -n 7 tom Adjusting aging data for user tom. passwd: Success [root@localhost ~]# cat /etc/shadow | grep "tom" tom:$6$/M5PH/Al$mBtJBCMMbJhmrVTnXyjRO59KcSeLvsKQ8kOB0I3bTpyEMp0hpNLD0hVC4WEizh/vAcdx6Y8OWsqKimngwEHIE.:17622:7:99999:7:10:17877:

 -x maxdays: 指定最大使用期限

 -w warndays: 提前多少天開始警告用戶修改密碼

 -i inactivedays: 非活動期限(這段時間用戶不能用修改密碼,但是修改密碼后可以繼續使用)

 --stdin: 從標準輸入接收用戶的密碼
  echo "PASSWD" | passwd --stdin UserName

[root@localhost ~]# echo '123456' | passwd --stdin user3 更改用戶 user3 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。

  注意:/dev/null, bit buckets 位桶 數據黑洞 空設備,丟棄一切寫入其中的數據
     /dev/zero, 當你讀它的時候,它會提供無限的空字符

例如上個修改密碼成功的的信息,如果修改成功則會發出信息,這時可以將該信息 丟給/dev/null,則不會顯示任何信息 若想知道是否執行成功,則可以使用echo $?命令查看,成功則返回0[root@localhost ~]# echo "o0p-[=" | passwd --stdin tom &> /dev/null [root@localhost ~]# echo $? 0

⑦userdel: 刪除用戶

 userdel [OPTION]... login
 -r 刪除用戶家目錄

[root@localhost ~]# userdel docker [root@localhost ~]# ll -d /home/docker drwx------. 4 505 docker 4096 Apr 1 16:50 /home/docker[root@localhost ~]# userdel -r centos [root@localhost ~]# ll -d /home/centos ls: cannot access /home/centos: No such file or directory

⑧groupmod: 組屬性修改

 groupmod [OPTION]... group
 -n group_name: 新名字

 -g GID: 新的GID

⑨groupdel: 組刪除

  groupdel?[OPTION]... group

  groupdel GROUP:新名字

⑩gpasswd:修改組密碼

  gpasswd [OPTION] GROUP

[root@localhost ~]# gpasswd gentoo Changing the password for group gentoo New Password: Re-enter new password: [root@localhost ~]# cat /etc/gshadow | grep "gentoo" gentoo:$6$CUkW//JZ/Gm/R$6XS3FPfEa07nTZUSDkMVey3u7j6713AVAFwW1vMUBR31Ve0KVRLL6ZFIQGh.cONoZXLcL/IAH56i633z6zdu1/::

  -a user: 將user添加至指定組中

[root@localhost ~]# gpasswd -a tim gentoo Adding user tim to group gentoo [root@localhost ~]# id tim uid=501(tim) gid=1502(testgrp) groups=1502(testgrp),508(gentoo)

  -d user: 刪除用戶user的以當期為組名的附加組

[root@localhost ~]# gpasswd -d tim gentoo Removing user tim from group gentoo [root@localhost ~]# id tim uid=501(tim) gid=1502(testgrp) groups=1502(testgrp)

  -A user1,user2,...: 設置有管理權限的用戶列表,用戶之間用逗號隔開

[root@localhost ~]# gpasswd -A tim,ben root

⑾newgrp命令,臨時切換基本組

 臨時切換基本組,切換后創建文件,該文件屬組是切換后的組
 如果用戶不屬于此組,切換需要密碼
 如果用戶屬于此組,切換不需要密碼

[root@localhost ~]# useradd ben [root@localhost ~]# su - ben [ben@localhost ~]$ newgrp mygrp 密碼: [ben@localhost ~]$ id uid=1002(ben) gid=1002(mygrp) 組=1002(mygrp),1005(ben) [ben@localhost ~]$ touch d.txt [ben@localhost ~]$ ll 總用量 0 -rw-r--r-- 1 ben mygrp 0 6月 2 11:07 d.txt [ben@localhost ~]$ exit exit [ben@localhost ~]$ touch e.txt [ben@localhost ~]$ ll 總用量 0 -rw-r--r-- 1 ben mygrp 0 6月 2 11:07 d.txt -rw-rw-r-- 1 ben ben 0 6月 2 11:08 e.txt

⑿pwck 檢查密碼文件的完整性

 檢查密碼文件的完整性,命令檢查用戶及其認證信息的完整性

⒀chage:修改用戶密碼過期信息

 chage [OPTION].. login     

用法:chage [選項] 登錄選項:-d, --lastday 最近日期 將最近一次密碼設置時間設為“最近日期”-E, --expiredate 過期日期 將帳戶過期時間設為“過期日期”-h, --help 顯示此幫助信息并推出-I, --inactive INACITVE 過期 INACTIVE 天數后,設定密碼為失效狀態-l, --list 顯示帳戶年齡信息-m, --mindays 最小天數 將兩次改變密碼之間相距的最小天數設為“最小天數”-M, --maxdays 最大天數 將兩次改變密碼之間相距的最大天數設為“最大天數”-R, --root CHROOT_DIR chroot 到的目錄-W, --warndays 警告天數 將過期警告天數設為“警告天數”

 -d: LAST_DAY 格式 YYYY-MM-DD 上一次修改密碼的日期 (相對時間,unix元年到該日期經過的天數)

 -E: --expiredate EXPIRE_DATE 過期日期 格式 YYYY-MM--DD (相對時間,unix元年到該日期經過的天數)

 -I: --inactive INACTIVE 設定非活動期限

 -m: --mindays MIN_DAYS 設定密碼最短使用期限

 -M: --maxdays MAX_DAYS 設定密碼最長使用期限

 -W: --warndyas WARN_DAYS 設定提前多少天警告

⒁其他命令:chfn、chsh、finger

 chfn 修改用戶的注釋信息

 chsh修改用戶的默認shell

[root@localhost ~]# tail -1 /etc/passwd ben:x:1002:1005::/home/ben:/bin/bash [root@localhost ~]# chsh ben Changing shell for ben. New shell [/bin/bash]: /bin/csh Shell changed. [root@localhost ~]# tail -1 /etc/passwd ben:x:1002:1005::/home/ben:/bin/csh

 finger查看用戶的詳細信息(Linux未裝)

2,權限管理:

①文件的權限主要針對三類對象進行定義

owner:屬主,u
group:屬組,g
other:其他,o

-rw-------. 1 root root 1631 5月 5 17:57 anaconda-ks.cfg

前三位為屬主權限(紅色),中間三位為屬組權限(粉色),后面三位為其他權限(藍綠色)

②每個文件針對每類訪問者都定義了三種權限

r:readable 可讀
w:writable 可寫
x:execuable 可執行

文件
 r:可使用文件查看類工具獲取其內容 cat tac more less head tail
 w:可修改其內容 nano vim vi
 x:可以把此文件提前內核啟動為一個進程 bash

目錄
 r:可以使用ls查看此目錄中文件列表 ls
 w:可以在此目錄中創建文件,也可刪除此目錄中的文件 touch rm
 x:可以使用ls -l查看此目錄中文件列表,可以cd進入此目錄 ll cd

   權限轉換二進制數、八進制數
    --- 000 0
    --x 001 1
    -w- 010 2
    -wx 011 3
    r-- 100 4
    r-x 101 5
    rw- 110 6
    rwx 111 7

    例如:640:rw-r-----? ? ? ? ?rw-r-xr-x:755

③chmod: 修改文件權限

三種身份(user,group,others)各自的三個權限(r,w,x)

使用八進制修改

chmod [OPTION]... OCTAL-MODE FILE...

 -R 遞歸修改權限

[root@localhost ~]# chmod -R 700 /tmp/test [root@localhost ~]# ls -ld /tmp/test drwx------ 2 root root 4096 Apr 2 09:41 /tmp/test [root@localhost ~]# ll /tmp/test total 0 -rwx------ 1 root root 0 Apr 2 09:41 abc

 使用八進制數修改文件或目錄權限

[root@localhost ~]# chmod 640 /tmp/fstab [root@localhost ~]# ll /tmp/fstab -rw-r----- 1 root root 621 Mar 29 19:56 /tmp/fstab

使用MODE修改

 chmod [OPTION]... MODE[,MODE]... FILE...

MODE:
修改一類或多類用戶的所有權限,若沒有任何權限,則留空,a表示所有三類用戶
  u= 屬主
  g= 屬組
  o= 其他
  ug= 屬主、屬組
  a= 所有用戶
  u= ,g= 多個用戶指定權限 使用逗號隔開

[root@localhost ~]# chmod u=rwx /etc/fstab [root@localhost ~]# ll /etc/fstab -rwxr--r-- 1 root root 621 Mar 23 15:04 /etc/fstab[root@localhost ~]# chmod g=r /etc/fstab [root@localhost ~]# ll /etc/fstab -rwxr--r-- 1 root root 621 Mar 23 15:04 /etc/fstab[root@localhost ~]# chmod o= /etc/fstab [root@localhost ~]# ll /etc/fstab -rwxr----- 1 root root 621 Mar 23 15:04 /etc/fstab[root@localhost ~]# chmod ug=rwx /etc/fstab [root@localhost ~]# ll /etc/fstab -rwxrwx--- 1 root root 621 Mar 23 15:04 /etc/fstab[root@localhost ~]# chmod u=rwx,g=r /etc/fstab [root@localhost ~]# ll /etc/fstab -rwxr----- 1 root root 621 Mar 23 15:04 /etc/fstab[root@localhost ~]# chmod a=rwx /etc/fstab [root@localhost ~]# ll /etc/fstab -rwxrwxrwx 1 root root 621 Mar 23 15:04 /etc/fstab

修改一類用戶某位或某些權限
  u+: +表示增加權限
  u-: -表示移除權限

[root@localhost ~]# chmod u+r /tmp/fstab [root@localhost ~]# ll /tmp/fstab -rw-r--r-- 1 root root 621 Mar 29 19:56 /tmp/fstab[root@localhost ~]# chmod u-r /tmp/fstab [root@localhost ~]# ll /tmp/fstab --w-r--r-- 1 root root 621 Mar 29 19:56 /tmp/fstab

參考RFILE修改

chmod [OPTION].. --reference=RFILE FILE...

 參考RFILE文件的權限,修改FILE的權限和RFILE一樣

[root@localhost ~]# ll /tmp/fstab -rw-r--r-- 1 root root 0 6月 2 16:57 /tmp/fstab [root@localhost ~]# ll /tmp/issue -r--r--r-- 1 root root 0 6月 2 16:58 /tmp/issue [root@localhost ~]# chmod --reference=/tmp/issue /tmp/fstab [root@localhost ~]# ll /tmp/{issue,fstab} -r--r--r-- 1 root root 0 6月 2 16:57 /tmp/fstab -r--r--r-- 1 root root 0 6月 2 16:58 /tmp/issue

④修改文件的屬主,屬組

僅root有使用權限    

chown:修改文件的屬主

chown [OPTION]...[OWNER][:[GROUP]] FILE...
 用法:
  OWNER:?修改文件屬主

  OWNER:GROUP: 修改文件屬主、屬組

  :GROUP: 修改文件屬組

    注意:命令中的 : 可用 . 替換

       -R 遞歸修改文件屬主、屬組

[root@localhost ~]# ll /tmp/x 總用量 0 -rwxr--r-- 1 root root 0 6月 2 16:06 a.txt -rw-r--r-- 1 root root 0 6月 2 16:19 d [root@localhost ~]# chown -R user2.user2 /tmp/x [root@localhost ~]# ll /tmp/x 總用量 0 -rwxr--r-- 1 user2 user2 0 6月 2 16:06 a.txt -rw-r--r-- 1 user2 user2 0 6月 2 16:19 d

chown [option]... --reference=rfile file... 參考rfile的屬主屬組,修改file的屬主屬組

[root@localhost ~]# chown --reference=/tmp/issue /tmp/fstab [root@localhost ~]# ll /tmp/{issue,fstab} --w-r--r-- 1 tom root 621 Mar 29 19:56 /tmp/fstab -rw-r--r-- 1 tom root 74 Mar 29 22:38 /tmp/issue

chgrp: 修改文件的屬組

chgrp [OPTION]... GROUP FILE...

[root@localhost ~]# chgrp tim /tmp/fstab [root@localhost ~]# ll /tmp/fstab --w-r--r-- 1 tom tim 621 Mar 29 19:56 /tmp/fstab

chgrp [option]... --reference=rfile file... 參考rfile的屬組,修改file的屬組

[root@localhost ~]# chgrp --reference=/tmp/fstab /tmp/issue [root@localhost ~]# ll /tmp/{fstab,issue} --w-r--r-- 1 tom tim 621 Mar 29 19:56 /tmp/fstab -rw-r--r-- 1 tom tim 74 Mar 29 22:38 /tmp/issue

?-R 遞歸修改目錄文件的屬組

[root@localhost ~]# chgrp -R centos /tmp/test [root@localhost ~]# ll -d /tmp/test drwx------ 2 tom centos 4096 Apr 2 09:41 /tmp/test [root@localhost ~]# ll /tmp/test total 0 -rwx------ 1 tom centos 0 Apr 2 09:41 abc

⑤umask: 文件或目錄創建的遮罩碼

創建文件: 666-umask

創建文件的默認權限

[root@localhost ~]# umask 0022 [root@localhost ~]# touch /tmp/test.txt [root@localhost ~]# ll /tmp/test.txt -rw-r--r-- 1 root root 0 Apr 2 10:21 /tmp/test.txt *這里的默認umask不管第一位,為022,減后為755,這說明存在x權限,將權限加一,則為133,所以為644,-rw-r--r--*

注意:如果某類的用戶的權限減得的結果中存在x執行權限,則將其權限+1

[root@localhost ~]# umask 023 [root@localhost ~]# touch /tmp/test1.txt [root@localhost ~]# ll /tmp/test1.txt -rw-r--r-- 1 root root 0 Apr 2 10:23 /tmp/test1.txt

創建目錄: 777-umask

 創建目錄的默認權限

[root@localhost ~]# umask 0022 [root@localhost ~]# mkdir /tmp/test [root@localhost ~]# ll -d /tmp/test drwxr-xr-x 2 root root 4096 Apr 2 10:27 /tmp/test

 umask 查看umask

  [root@localhost ~]# umask0022

 umask # 設定umask

  [root@localhost ~]# umask 023[root@localhost ~]# umask0023 用法:useradd [選項] 登錄 useradd -D useradd -D [選項] 選項: -b, --base-dir BASE_DIR 新賬戶的主目錄的基目錄 -c, --comment COMMENT 新賬戶的 GECOS 字段 -d, --home-dir HOME_DIR 新賬戶的主目錄 -D, --defaults 顯示或更改默認的 useradd 配置 -e, --expiredate EXPIRE_DATE 新賬戶的過期日期 -f, --inactive INACTIVE 新賬戶的密碼不活動期 -g, --gid GROUP 新賬戶主組的名稱或 ID -G, --groups GROUPS 新賬戶的附加組列表 -h, --help 顯示此幫助信息并推出 -k, --skel SKEL_DIR 使用此目錄作為骨架目錄 -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默認值 -l, --no-log-init 不要將此用戶添加到最近登錄和登錄失敗數據庫 -m, --create-home 創建用戶的主目錄 -M, --no-create-home 不創建用戶的主目錄 -N, --no-user-group 不創建同名的組 -o, --non-unique 允許使用重復的 UID 創建用戶 -p, --password PASSWORD 加密后的新賬戶密碼 -r, --system 創建一個系統賬戶 -R, --root CHROOT_DIR chroot 到的目錄 -s, --shell SHELL 新賬戶的登錄 shell -u, --uid UID 新賬戶的用戶 ID -U, --user-group 創建與用戶同名的組 -Z, --selinux-user SEUSER 為 SELinux 用戶映射使用指定 SEUSER

總結

以上是生活随笔為你收集整理的用户、组及权限控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。