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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

5.linux帐号管理与权限设定

發布時間:2023/12/13 综合教程 22 生活家
生活随笔 收集整理的這篇文章主要介紹了 5.linux帐号管理与权限设定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/etc/passwd

/etc/group

/etc/shadow

/etc/gshadow

/etc/default/useradd

/etc/login.defs

/etc/kel/*

/etc/pam.d/passwd -----PAM密碼管理機制所在的位置

/etc/skel ----home目錄基準參考目錄

/etc/sudoers ----該檔案中記錄著可以執行sudo命令的帳號

修改/etc/passwd中的帳號信息會導致文檔屬性無法顯示擁有者的姓名,取而代之的是UID,因為系統無法在/etc/passwd找到對應用戶的-

b. 通過修改/etc/passwd第7欄的信息來改變默認home目錄(usermod),對我個人很實用;或者通過修改地8欄給用戶一個登錄后的默認sheel

c./sbin/nologin這個sheel可以讓用戶在不獲得sheel環境,可以用來做為純pop郵件帳號

/etc/passwd文件解析[1-1][11-2][1-3]

/etc/shadow9個字段的含義 [1-4,5,6]

找回丟失的密碼 [1-7]

4. 關于群組:有效群組,與初始群組,groups,newgrp

/etc/group ----[1-8]

$ useradd -m yxl ----創建行用戶yxl并自動長生主目錄/home/yxl(普通用戶)

$ sudo passwd yxl truman ----創建帳號密碼

$ sudo usermod -s /bin/bash yxl ----修改yxl的登錄sheel為/bin/bash(默認是/bin/sh)

$sudo grep yxl /etc/passwd /etc/group /etc/shado

/etc/passwd:yxl:x:999:999::/home/yxl:/bin/bash

/etc/group:yxl:x:999:

/etc/shadow:yxl:$6$oVhKiz3G$AWIETaQnyPd4pKME/XYfOBWlHJSBDJLjFLCc.01Jd8zx4xreNnlYTkvK8

B.OJHx6QdItzTis1p/4LYhx7EhFx.:16023::::::

$ sudo usermod -G anderson yxl -----將yxl加到anderson組中

$ sudo usermod -G sudo yxl ----將yxl附加到sudo組中

$ groups ----查看當前用戶支持的群組(第一個是有效群組)

$ newgrp adm ----切換到adm這個群組為有效群組(現在創建的新文檔將屬于當前用戶,并屬于當前有效群組)

/etc/gshadow ----[1-9]

實戰:

1.默認方式建立用戶

$ useradd vbird1 ----[1-10]

$ sudo passwd vbird1 ----設置密碼

2.-u /-g

$ useradd -u 700 -g users vbird2 ----初始群組為users,初始UID為700,建立用戶vird2

3.-c

$ useadd -r bird3 ----不會主動建立家目錄

4.useradd參考檔:查看useradd的默認情況[1-11]

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/sh

SKEL=/etc/skel

CREATE_MAIL_SPOOL=no ----==no時不會在/var/spool/mail下建立文檔

5.UID/GID默認參考檔:/etc/login.defs

[1-12,14]

5.使用standard input建立用戶的密碼

$ sudo echo "truman" | passwd --stdin vbird1 ----[1-15]

6.passwd命令 /etc/passwd/etc/pam.d/passwd/etc/shadow

$ sudo passwd -S yxl ----查看yxl的帳號情況

$ sudo passwd -x 60 -i 10 yxl ----60天變更,10天失效密碼過期設置

$ sudo passwd -l yxl ----將yxl這個賬戶鎖定(會因為系統無法正確讀取shadow中的密碼字段而無法登錄)

$ sudo grep yxl /etc/shadow ----查看什么發生了變化

yxl:!$6$oVhKiz3G$AWIETaQnyPd4pKME/XYfOBWlHJSBDJLjFLCc.01Jd8zx4xreNnlYTkvK

8B.OJHx6QdItzTis1p/4LYhx7EhFx.:16023::60::10::

$ sudo passwd -u yxl

passwd:密碼過期信息已更改。

$ sudo grep yxl /etc/shadow

yxl:$6$oVhKiz3G$AWIETaQnyPd4pKME/XYfOBWlHJSBDJLjFLCc.01Jd8zx4xreNnlYTkvK

8B.OJHx6QdItzTis1p/4LYhx7EhFx.:16023::60::10::

7.chage命令 [1-18]

$ sudo chage -l yxl ----查看yxl的詳細密碼屬性信息(比passwd -S好用多了)

案例1:給別人一個初始密碼,當該用戶登錄是必須修改密碼,否則無法登錄

$ sudo useradd nemo

$ sudo echo "yxl694852" | passwd --stdin nemo(ubuntu不支持) or $ sudo passwd nemo

$ sudo sudo chage -d 0 nemo

8.usermod[1-16]

案例一:修改yxl的說明欄

$ sudo usermod -c "MyGirl" yxl

$ grep yxl /etc/passwd

案例二:設置yxl的密碼在2100年失效

$ sudo usermod -e "2100-01-01" yxl

案例 三:給已經創建的nemo賬戶一個home目錄

$ ll -d ~nemo

$ sudo cp -a /etc/skel/ /home/nemo ---將/etc/skel復制過來作為/home/nemo

$ sudo chown -R nemo:nemo /home/nemo ----改變其擁有者和所屬組

$ sudo chmod 700 /home/nemo ----改變目錄的權限

9.userdel [1-17]

注意:如果只是暫時不想讓該用戶存在,可以考慮將密碼帳號有效剩余天數(/etc/shadow)設為0或者$ sudo passwd -d username刪掉密碼

只有確定可以完全清楚哦某個賬戶時 才考慮userdel

$ find / -user vbird1 ---全盤查找屬于vbird1的檔案

$ sudo userdel -r vbird1 ----連同vbird1的home目錄一起清除

10.finger [1-19]

案例一:

$ finger anderson ----觀察anderson帳號相關屬性

Login: anderson Name: anderson

Directory: /home/anderson Shell: /bin/bash

On since Fri Nov 15 00:54 (CST) on tty7 from :0

1 hour 4 minutes idle

On since Fri Nov 15 00:54 (CST) on pts/1 from :0

1 second idle

No mail.

No Plan.

案例二:建立自己的計劃檔

$ echo "I will go to BeiJIng the day after tomorrow." > ~.plan ----不知道為什么我的機器上沒有~/.plan ~./project ~/.pgpkey

案例三:目前登錄的用戶與登錄時間

$ finger

11.chfn:修改i/添加個人屬性信息

12.chsh :change sheel

案例一:用anderson的身份列出系統上所有合法的sheel,并制定/bin/sh為自己的sheel

$ chsh -l <==>$ cat /etc/shells ----ubuntu上沒有-l 參數

案例二:修改當前用戶的hshell

$ chsh -s /bin/rbash;grep anderson /etc/passwd <==>$ sudo usermod -s /bin/rbash anderson

13.id :查看某人或自己的UID/GID等信息,還可以用來判斷有沒有某個用戶

$ id <==> $ who am i | id ----查看當前用戶的信息

$ id yxl ----查看yxl的UID/GID等信息

14.groupadd,groupmod,groupdel,gpaasswd


groupadd

案例一:新建一個群組

$sudo groupadd webteam

$sudo grep webteam /etc/group /etc/shadow

/etc/group:webteam:x:1002:

/etc/gshadow:webteam:!::


groupmod

注意:不要隨便更改GID

案例二:將案例一新建的webeam組名改為myteam,GID改為

$ sudo groupmod -g 139 -n myteam webteam

$ sudo grep myteam /etc/group /etc/gshadow

/etc/group:myteam:x:139:

/etc/gshadow:myteam:!::


groupdel

注意:如果該組中還有其他帳號則無法順利刪除(可以先更改帳號的GID或者刪除那個帳號)

案例三:刪除剛剛建立的群組

$ sudo groupdel myteam


gpasswd

案例四:建立一個新的群組myteam,交給yxl管理(群組管理員)

$ sudo groupadd -g 139 myteam ----建立群組myteam,GID為139(勤人坡)

$ sudo gpasswd myteam ----設置群組密碼(truman)

$ sudo gpasswd -A yxl myteam ----將yxl添加為myteam的群組管理員

$ su yxl ----卻換到yxl

$ gpasswd -a anderson myteam ----用易小麗的身份將anderson加為myteam的群組組員

$ grep myteam /etc/group ----查看


帳號管理實戰:

案例一:新建一個群組mathwebteam,然后提供一個項目的開發目錄,帳號信息如下

帳號 帳號備注 支援次要群組 是否可以登錄主機 passwd
neo the boss mathwebteam yes truman
xk the crew mathwebteam yes truman
yl the crew no no truman

一:建立群組

$sudo groupadd mathwebteam

二:建立帳號

$ sudo useradd -G mathwebteam -c "the caption" neo

$ sudo useradd -G mathwebteam -c "the crew" xk

$ sudo useradd -c "the crew" -s /sbin/nologin yl

三:給帳號設置密碼

$ sudo passwd neo

$ sudo passwd yxl

$ sudo passwd xk

四:建立項目目錄

$ sudo mkdir /srv/project

$ sudo chgrp mathwebteam /srv/project

$ sudo chmod 2770 /srv/project

$ ll -d /srv/project

五:讓anderson具備對/srv/project rx的權限(acl應用)

測試yl能否進入/srv/project

$ su anderson ----切換

$ cd /srv/project ----不行

bash: cd: /srv/project/: 權限不夠

#$ sudo setfacl -m u:anderson:rx /srv/project ----讓anderson對/srv/project具備rx的權限

$ sudo setfacl -m d:u:anderson:rx /srv/project ----讓anderson對/srv/project及其地下的所有文件都具備rx的權限

$ cd /srv/priject ----現在anderson已經可以進入/srv/project中了

$ touch te ----anderson仍然不具備w的權限

$ getfacl /srv/project

# file: srv/project/

# owner: root

# group: mathwebteam

# flags: -s-

user::rwx

user:anderson:r-x ----增加了anderson的權限

group::rwx

mask::rwx

other::---


15.acl(access control list)


一:查看我的機器是否支持acl

$ mount | grep acl ----我的ubuntu沒有查到任何信息

$ sudo dumpe2fs -h /dev/sda9 | grep acl ----通過產看根目錄(我的ubuntu的根目錄在/dev/sda9)的超級塊來看看有沒有acl的信息

dumpe2fs 1.42.8 (20-Jun-2013)

Default mount options: user_xattr acl ----看來我的ubuntu默認支持acl

如果不支持可以執行以下命令是系統的文件系統支持:

$ sudo mount -o remount,acl /

[sudo] password for anderson:

$ mount |grep acl

/dev/sda9 on / type ext4 (rw,errors=remount-ro,acl)

二:acl的使用技巧

setfacl [1-20]

案例一:在test中創建一個文檔acl_test1并使用setfacl對acl_test1的權限進行設置

$ mkdir /home/anderson/test

$ touch /home/anderson/test/acl_test1

$ setfacl -m u:yxl:rwx acl_test1 ----使yxl具備rwx權限

$ ll -d acl_test1

-rw-rwxr--+ 1 anderson anderson 0 11月 16 14:14 acl_test1*

$ setfacl -m u::rwx acl_test1

$ ll -d acl_test1

-rwxrwxr--+ 1 anderson anderson 0 11月 16 14:14 acl_test1*

$ getfacl acl_test1 ----查看acl_test1檔案的acl屬性

# file: acl_test1

# owner: anderson

# group: anderson

user::rwx

user:yxl:rwx

group::r--

mask::rwx

other::r--

$ setfacl -m g:myteam:rx acl_test1 ----給myteam這個群組rx權限

$ getfacl acl_test1 ----查看acl_text1這個的檔案的acl權限設置

# file: acl_test1

# owner: anderson

# group: anderson

user::rwx

user:yxl:rwx

group::r--

group:myteam:r-x ----多了這個群組的權限設定

mask::rwx

other::r--

針對有效權限mask的設置

$ setf -m m:r acl_test1 ----針對acl_test1設置mask(權限上限)為r,這樣acl設置最高權限只有r

三:帳號的切換

su

$ su ----切換為root賬戶,變量設定方式為no-login shell,環境變量不會改變

$ su - ----以login shell的方式切換為root

$ su -c "head -n 3 /etc/shadow" ----切換為root執行一條命令,執行完畢后馬上切換回來

$ su -l yxl or $ su yxl ----切換到yxl這個普通用戶

sudo

$ sudo -u yxl touch /home/yxl/sudotest ----使用yxl帳號建立sudotest

$ sudo -u yxl sh -c "mkdir ~yxl/www;cd ~yxl/www; echo 'This is index.html file' " -----一串指令

visudo和/etc/sudoers [1-21]

案例一:讓yxl可以通過sudo切換為root,限制僅可以使用passwd幫助anderson修改帳號的密碼,但不能修改anderson的密碼

$ sudo visudo

yxl ALL=(root) !/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd anderson,!/usr/bin/passwd root

案例二:針對案例一優化,以一種更加有彈性更易擴展維護的方式設置[1-23]

$ sudo visudo

#User_Alias and Cmnd_Alias

User_Alias ADMPW =yxl,yl #這次添加兩個助手

Cmnd_Alias ADMPWCOM=!/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd anderson,!/usr/bin/passwd root

ADMPW ALL=(root) ADMPWCOM

案例三:sudo 搭配su實現普通帳號在不知道root密碼的情況下使用root身份進行工作(sudo su -)

注意:僅在這些帳號您都十分信任的情況下

$ sudo visudo

User_Alias ADMINS=user1,user2,user3

ADMINS ALL=(root) /bin/su -

四.用戶的特殊shell與PAM模塊

1: nologin shell :我的ubuntu的nologin shell為/usr/sbin/nologin,而且我沒在/etc/下找到nologin.txt,新建了一個也不起作用

2:passwd呼叫PAM接口的過程[1-24]

以下的學習平臺更換為centos 6.4onvmware 10.0.1

3:PAM控制旗標所造成的回報流程[1-25]

4:centos 6的PAM預設檔案

/etc/pam.d/login ----登入系統執行的pam驗證流程

/etc/pam.d/ststem-auth ----被多次呼叫

/etc/pam.d/* ----各個程序的pam配置文件

/etc/security/* ----其它環境的pam配置文件

總結

以上是生活随笔為你收集整理的5.linux帐号管理与权限设定的全部內容,希望文章能夠幫你解決所遇到的問題。

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