日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

05-用户和组以及权限

發(fā)布時間:2023/12/14 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 05-用户和组以及权限 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用戶和組簡介

當(dāng)我們使用Linux時,需要以一個用戶的身份登入,一個進(jìn)程也需要以一個用戶身份運(yùn)行,用戶限制使用者或進(jìn)程可以使用或不可以使用哪些資源。

組用來方便組織管理用戶。

用戶分為以下三種

?   -root用戶 (ID為0的用戶為root,即高級系統(tǒng)管理員,擁有所有權(quán)限)

  ??-系統(tǒng)用戶? (1-499)

  ? -普通用戶? (500以上)

?

系統(tǒng)中的文件都有一個所屬用戶及所屬組

  • 每個用戶擁有一個UID,操作系統(tǒng)實際使用的是UID,而非用戶名
  • 每個用戶屬于一個主組,屬于一個或多個附屬組(一個用戶最多有31個附屬組)
  • 每個組擁有一個GID
  • 每個可登陸用戶擁有一個指定的shell環(huán)境
  • 每個進(jìn)程以一個用戶身份運(yùn)行,并受該用戶可訪問的資源限制

使用id命令可以顯示當(dāng)前用戶的信息

[root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

使用passwd命令可以修改當(dāng)前用戶密碼

#為指定用戶zzz更換密碼 1 [root@localhost ~]# passwd zzz 2 Changing password for user zzz. 3 New password: #非交互式為zzz更改密碼一: 1 [root@localhost ~]# echo "123456789" | passwd --stdin zzz 2 Changing password for user zzz. 3 passwd: all authentication tokens updated successfully. #非交互式為zzz更改密碼二: 1 [root@localhost ~]# echo "zzz:123456789" | chpasswd #非交互式為zzz更改密碼三: 1 [root@localhost ~]# echo "123456" > pass.txt2 [root@localhost ~]# cat pass.txt | passwd --stdin zzz 3 Changing password for user zzz. 4 passwd: all authentication tokens updated successfully. #非交互式為zzz更改密碼四: 1 [root@localhost ~]# echo "zzz:123456" > pass.txt 2 [root@localhost ~]# cat pass.txt | chpasswd

?

用戶及組相關(guān)操作

相關(guān)文件:

  • /etc/passwd????? - 保存用戶信息
  • /etc/shadow???? - 保存用戶密碼(以加密形式保存)
  • /etc/group - 保存組信息
  • /etc/login.defs
  • /etc/default/useradd?

新建一個用戶:useradd ?zzz1

這個命令會執(zhí)行以下操作

1. 在/etc/passwd中添加用戶信息

2. 如果使用passwd命令創(chuàng)建密碼,則將密碼加密保存在/etc/shadow中

3. 為用戶建立一個新的家目錄/home/zzz1

4. 將/etc/skel中的文件復(fù)制到用戶的家目錄中

5. 建立一個與用戶名相同的組,新建用戶默認(rèn)屬于這個同名組

?

命令useradd支持以下參數(shù):

  -d 指定家目錄

  -s 登陸shell

  -u 指定UID

  -g 主組

  -G 附屬組(最多31個,用“ , ”分割)

也可通過直接修改/etc/passwd方式實現(xiàn),但是不建議



修改用戶信息:usermod

用法:usermod 參數(shù) username

?

命令usermod支持以下參數(shù)

  -l 新用戶名

  -u 新UID

  -d 用戶家目錄位置

  -g 用戶所屬主組

  -G 用戶所屬附屬組

  -L 鎖定用戶使其不能登陸

  -U 解除鎖定

?

刪除用戶:userdel

用法:userdel 用戶名

  userdel zzz1? (保留用戶的家目錄)

  userdel –r zzz1 (同時刪除用戶的家目錄)

組的管理:

?通過組,我們可以更加方便的歸類、管理用戶,一般來講,我們會使用部門、職能或地理區(qū)域的分類方式來創(chuàng)建使用組。

  • 每個組有一個組ID
  • 組信息保存在/etc/group中
  • 每個用戶擁有一個主組,同時還可以擁有31個附屬組

創(chuàng)建、修改、刪除組

創(chuàng)建組:groupadd

groupadd zzz2

修改組:groupmod

groupmod –n newname oldname 修改組名

groupmod –g newGid oldGid? 修改組ID

刪除組:groupdel

groupdel zzz2

?

權(quán)限

  • 權(quán)限是OS用來限制對資源訪問的機(jī)制,權(quán)限一般分為讀、寫、執(zhí)行。
  • 系統(tǒng)中每個文件都擁有特定的權(quán)限、所屬用戶及所屬組,通過這樣的機(jī)制來限制哪些用戶或用戶組可以對特定文件進(jìn)行怎樣的操作。
  • 每個進(jìn)程都是以某個用戶身份運(yùn)行,所以進(jìn)程的權(quán)限與該用戶的權(quán)限一樣,所以用戶的權(quán)限越大,該進(jìn)程擁有的權(quán)限就大。

文件權(quán)限:

Linux中,每個文件擁有三種權(quán)限詳情見下面:

權(quán)限

對文件的影響

對目錄的影響

r(讀取)

可讀取文件內(nèi)容

可列出目錄內(nèi)容

w(寫入)

可修改文件內(nèi)容

可在目錄中創(chuàng)建刪除內(nèi)容

x(執(zhí)行)

可作為命令執(zhí)行

可訪問目錄內(nèi)容

目錄必須擁有x權(quán)限,否則無法查看其內(nèi)容

Linux權(quán)限基于UGO模型進(jìn)行控制:

  • U代表User,G代表Group,O代表Other
  • 每一個文件的權(quán)限基于UGO進(jìn)行設(shè)置
  • 權(quán)限三個一組(rwx),對應(yīng)UGO分別設(shè)置
  • 每一個文件擁有一個所屬用戶和所屬組,對應(yīng)UGO,不屬于該文件所屬用戶或所屬組使用O權(quán)限

?命令ls –l可以查看當(dāng)前目錄下文件的詳細(xì)信息:

1 [root@localhost ~]# ls -l 2 total 12 3 -rw-------. 1 root root 1854 Aug 10 20:10 anaconda-ks.cfg 4 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Desktop 5 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Documents 6 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Downloads 7 -rw-r--r--. 1 root root 1902 Aug 10 20:11 initial-setup-ks.cfg 8 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Music 9 -rw-r--r--. 1 root root 11 Aug 10 21:56 pass.txt 10 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Pictures 11 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Public 12 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Templates 13 drwxr-xr-x. 2 root root 6 Aug 10 21:47 Videos drwxr-xr-x. 2 root root 6 Aug 10 21:47 Documents rwxr-xr-x代表了UGO權(quán)限
每3位一組 rwx:U r-x:G r-x:O

修改文件所屬主、組:chown

用法:

  chown 用戶:用戶組?文件名

  或者

  chown 用戶.用戶組?文件名

    :和 . 左邊或右邊可為空,即只改所屬主或所屬組

  -R 參數(shù)遞歸的修改目錄下的所有文件所屬用戶

改變文件的所屬組:chgrp

  chgrp 組名 文件名

  -R 參數(shù)遞歸的修改目錄下的所有文件的所屬組

修改權(quán)限:chmod

?

chmod 模式? 文件

  • 模式為如下格式:

  ?u、g、o分別代表用戶、組和其他

  a可以代指ugo

  ?+、-、=代表加入、刪除和等于對應(yīng)權(quán)限

示例:

1 chmod u+w file 2 chmod u-x file 3 chmod ugo+x file == chmod a+x file 4 chmod go+r flie5 chmod u=rwx file

?

命令chmod也支持以數(shù)字方式修改權(quán)限,三個權(quán)限分別由三個數(shù)字表示:

r = 4??

w = 2?

x = 1?

?

使用數(shù)字表示權(quán)限時,每組權(quán)限分別對應(yīng)數(shù)字之和:

rw-? ?=??? 4 + 2 = 6

r-x? ? =? ?4 + 1 = 5

rwx? ?=? 4 + 2 + 1 = 7

?

所以,使用數(shù)字表示guo權(quán)限使用如下方式

chmod 660 file ????? == chmod rw-rw---- flie

chmod 755 file == chmod rwxr-xr-x file

特殊權(quán)限及權(quán)限掩碼

默認(rèn)權(quán)限:

  • 每一個終端都擁有一個umask屬性,來確定新建文件、目錄的默認(rèn)權(quán)限
  • umask使用數(shù)字權(quán)限方式表示,如:022
  • 目錄的默認(rèn)權(quán)限是:777-umask
  • 文件的默認(rèn)權(quán)限是:666-umask
  • 一般,普通用戶的默認(rèn)umask是002,root用戶的默認(rèn)umask是022

也就是說對于普通用戶來說

?  新建文件的權(quán)限是:666-002 = 664

  ?新建目錄的權(quán)限是:777-002 = 775

查看設(shè)置umask值:umask 

注:umask屬于環(huán)境變量,保存在/etc/profile或/etc/bashrc文件中。

umask值的計算:

umask值的每一位為偶數(shù)時:

  文件的權(quán)限計算方法:666減去umask值

  目錄的權(quán)限計算方法:777減去umask值

umask值有奇數(shù)時:

文件的權(quán)限計算方法:666減去umask值,然后在結(jié)果的基礎(chǔ)上,在umask的奇數(shù)位上+1

目錄的權(quán)限計算方法:777減去umask值,目錄不影響

?

所以當(dāng)umask=031時

計算方法:

  文件:666-031=635 然后在奇數(shù)位上+1

  即

   635

  + 11

=646

所以文件的是646

而目錄不影響:777-031=746

?

?

?

?

特殊權(quán)限:

? 除了普通權(quán)限外,還有三個特殊權(quán)限:

權(quán)限

對文件的影響

對目錄的影響

Suid

以文件的所屬用戶身份執(zhí)行,而非執(zhí)行文件的用戶

?

sgid

?

以文件所屬組身份去執(zhí)行

在該目錄中創(chuàng)建任意新文件的所屬組與該目錄的所屬組相同

?

sticky

?

對目錄擁有寫入權(quán)限的用戶僅可以刪除其擁有的文件,無法刪除其他用戶所擁有的文件

?設(shè)置特殊權(quán)限

  設(shè)置suid:

    chmod u+s file

  設(shè)置sgid

    chmod g+s file

  設(shè)置sticky

    chmod o+t file

與設(shè)置普通權(quán)限一樣,特殊權(quán)限也可以使用數(shù)字方式表示

  SUID = 4

  SGID = 2

  Sticky =1

所以,我們可以通過以下命令設(shè)置:

chmod 4755 file

?

文件訪問控制列表

也可以看出上面所有的操作都是針對一類用戶來設(shè)置的,那么如果想要某個文件對應(yīng)某個用戶進(jìn)行特定的設(shè)置就需要用到文件的訪問控制列表(ACL)了。

簡單來說:ACL會更加細(xì)分對某個用戶的權(quán)限指定

例子:

[root@localhost ~]# su - zzz Last login: Sat Aug 10 20:24:05 CST 2019 on :0 [zzz@localhost ~]$ cd /root -bash: cd: /root: Permission denied

用acl來設(shè)置:

1 [root@localhost ~]# ls -ld /root 2 dr-xr-x---. 14 root root 4096 Aug 10 21:55 /root 1 [root@localhost ~]# ls -ld /root 2 dr-xr-x---. 14 root root 4096 Aug 10 21:55 /root 3 [root@localhost ~]# setfacl -R u:zzz:rwx /root 4 Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ... 5 Try `setfacl --help' for more information. 6 [root@localhost ~]# setfacl -Rm u:zzz:rwx /root
1 [root@localhost ~]# su - zzz 2 Last login: Sat Aug 10 20:24:05 CST 2019 on :0 3 [zzz@localhost ~]$ cd /root 4 -bash: cd: /root: Permission denied 5 [zzz@localhost ~]$ cd /root 6 [zzz@localhost root]$

怎么去查看文件是否有ACL呢?

常用的ls命令是看不到ACL表信息的,但是卻可以看到文件的權(quán)限最后一個點(.)變成了加號(+),這就意味著該文件已經(jīng)設(shè)置了ACL了

[root@localhost ~]# ls -ld /root dr-xrwx---+ 14 root root 4096 Aug 10 21:55 /root
#查看具體acl [root@localhost ~]# getfacl /root getfacl: Removing leading '/' from absolute path names # file: root # owner: root # group: root user::r-x user:zzz:rwx group::r-x mask::rwx other::---

?

轉(zhuǎn)載于:https://www.cnblogs.com/zzzhbr/p/11331553.html

總結(jié)

以上是生活随笔為你收集整理的05-用户和组以及权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。