linux用戶、組管理

寫在前面:

本博客詳解命令如下:

useradd, userdel,usermod, passwd,  chage, groupadd,  groupdel, groupmod, gpasswd ,newgrp, chsh, id, su,  


用戶,組,權限管理


用戶標示:userID=UID

    用16位二進制標示:0-65535

管理員:0

普通用戶:1-65535

系統用戶:1-499(centos6),1-999(centos7)

登陸用戶:500-60000(centos6),1000-60000(centos7)

    名稱解析:名稱轉換,根據名稱解析庫進行/etc/passwd 即username <--> UID 

進程以其發起者的身份運行,進程對文件的訪問權限,取決於發起此進程的用戶的權限

爲了讓後臺進程或服務進程以非管理員的身份運行,通常需要維持創建多個普通用戶,這類用戶從不用登陸系統


組標示:groupID=GID

    組類別1:

管理員組:0

普通用戶組:1-65535

系統用戶組:1-499(centos6),1-999(centos7)

登陸用戶組:500-60000(centos6),1000-60000(centos7)

    名稱解析:groupname<-->GID,解析庫:/etc/group

    組類別2

用戶基本組

用戶附加組

    組類別3

私有組:組名同用戶,且只包含一個用戶

公共組:組內包含了多個用戶

用戶信息的存儲位置


/etc/passwd:用戶信息庫


具體查看/etc/passwd的方法:

[root@yph7 ~]# whereis passwd

passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

[root@yph7 ~]# man 5 passwd


具體內容如下:

name:passwd:UID:GID:GECOS:directory:shell

name :用戶名

passwd:加密的密碼,或者佔位符x

UID:用戶ID

GID:用戶所屬組的ID

GECOS:註釋信息

dircotory:用戶的家目錄

shell:用戶的默認shell


下行是以用戶breeze爲例查看得的信息

breeze:x:1004:1004::/home/breeze:/bin/bash

/etc/shadow:

 可用 命令“man 5 shadow”查看詳細解釋信息

此文件保存用戶的密碼的相關信息:以冒號隔開。下面以用戶breeze的密碼爲例:

breeze:$6$9lM/L.1L$NIV.GqNo5KnzuWsPu5dTQQuESC/MW6fgBzbss7YdbcWDx8Q6OBYZ9nPbnmib7UR9tH0G3U6WLcHbt.wsrk9oc/:16778:0:99999:7:5:88888:


用戶名:breeze

加密後的密碼:       

 $6$9lM/L.1L$NIV.GqNo5KnzuWsPu5dTQQuESC/MW6fgBzbss7YdbcWDx8Q6OBYZ9nPbnmib7UR9tH0G3U6WLcHbt. wsrk9oc/

    前兩個$之間的6表示加密碼類型。6表示sha512sum方式加密。第二第三個$之間的9lM/L.1L表示加密     時添加的隨機數salt。最後面的一串代碼表示加密後的密碼串

上一次修改密碼的時間:16778,指自從1970年01月01號到上次修改密碼之間的天數

最短使用期限:0表示不限制

最長使用期限:99999  表示不限時間

警告期:7 表示在密碼過期前7天開始警告你修改密碼

非活動期限:5 表示密碼過期5之內不修改密碼不能再登陸系統,到時只能找管理員解鎖

賬戶過期期限:指從1970-01-01號開始,88888天后過戶過期。此不同密碼過期,賬戶過期就不能再登陸

保留字段:此字段暫時沒定義信息

/etc/group:

存放組的相關信息。

可用 命令“man 5 group”查看詳細解釋信息

group_name:passwd :GID:user_list


group_name:組的名字

passwd:組的密碼

GID:組ID

user_list:該組的用戶成員,以此組爲附加組的用戶用戶列表


/etc/gshadow:

可用 命令“man 5 gshadow”查看詳細信息

存放組的相關信息,下面以組mygroup爲例:

mygroup:$6$0.CRmuyJ$3nns.....xWLDZqla/:mysql5:mysql5,mysql6

組名:mygrp

密碼:$6$0.CRmuyJ$3nns.....xWLDZqla/  爲該組加密後的組密碼,由於過長,中間省略了一部分

管理員:mysql5爲該組的管理員

組成員:mysql5和mysql6兩個用戶以該組爲附加組

再次強調一遍:這四個文件的內容代表什麼意思,請用"man 5 [] "查看

   

用戶密碼使用策略

1、使用隨機密碼

2、最短長度大於等於8位

3、至少使用大、小寫字母,數字,標點四類符號中的三類

4、定期更換。

加密算法:

對稱加密:加密和解密使用同一個密碼

非對稱加密:加密和解密使用一對祕鑰

    公鑰:public key

    私鑰:private key

單向加密:只能加密不能解密,提取數據特徵碼(用人做出指紋,不能拿指紋做出一個完整的人)

    定長輸出:長度都一樣

    雪崩效應:原密碼微小變化引起加密後密碼的絕大多數改變

下面兩個例子是演示兩種單向加密的雪崩效應,密碼就變動一個字符,整個加密後密碼幾乎完全不同!

[root@yph7 tmp]# echo "stupidbid." | md5sum

b111ba6095eecab556928fb090e67bfc  -

[root@yph7 tmp]# echo "stupidbird?" | md5sum

617ce59960c4a4069abca8a12591f89f  -


[root@yph7 tmp]# echo "stupidbird?" | sha512sum

d55dd8d9e41e90430fb06e5d1cf71ace340c3b641a0a97abecc50590c96aae238662723ee61605ca2ca2bb90627b140e8ab5c6f83188ff61f5022809c47ec5fd  -

[root@yph7 tmp]# echo "stupidbird." | sha512sum

f86276b82bd1403dbc38abf01f1b57895b942961f468b00380cb8aa438f838514aea59033c9f46ed72931a998ed81921140def986db842260dd94698b69ce328  -


單向加密工具:

1、md5sum:128位,message digest,

2、sha1sum:secure hash algorithm  160位

3、sha224sum:224 bits

4、sha256sum:256 bits

5、sha384sum: 384 bits

6、sha512sum: 512 bits

敲sha然後TAB鍵查看有哪些,數字代表多少位

在計算前加salt,加隨機數:即使兩個人密碼一樣,由於加了隨機數,密碼代碼仍幾乎不同

這個隨機數會被系統記住以便用戶登錄時比對碼文

下面演示一些相關的命令:


 

useraddcreate a new useror update default new user information     useradd breeze

 

-u--uid UID:指定UID

[root@yph7 tmp]# useradd -u 2001 hadoop

[root@yph7 tmp]# id hadoop

uid=2001(hadoop) gid=2001(hadoop) =2001(hadoop)

 

-g--gid group:指定基本組,寫ID和組名都可以,但必須事先存在

[root@yph7 tmp]# useradd -g 2001 mysql

[root@yph7 tmp]# id mysqle

uid=2002(mysqle) gid=2001(hadoop) =2001(hadoop)

 

[root@yph7 tmp]# useradd -g breeze mysql3

[root@yph7 tmp]# id mysql3

uid=2004(mysql3) gid=1004(breeze) =1004(breeze)

 

-G--groups group1group2...:附加組,每個組都用逗號隔開,沒有中間的空格,組必須存在

[root@yph7 tmp]# useradd -G 2002,2003 mysql5

[root@yph7 tmp]# id mysql5

uid=2005(mysql5) gid=2005(mysql5) =2005(mysql5),2002(mygroup),2003(hisgroup)

 

[root@yph7 tmp]# useradd -G mygroup,hisgroup mysql6

[root@yph7 tmp]# id mysql6

uid=2006(mysql6) gid=2006(mysql6) =2006(mysql6),2002(mygroup),2003(hisgroup)

 

-c--comment“comment”:註釋信息

[root@yph7 tmp]# useradd -c "I am foolvbird" mydql4

[root@yph7 tmp]# tail -1 /etc/passwd

mydql4:x:2007:2007:I am foolvbird:/home/mydql4:/bin/bash

 

-d--home home_dir:以指定的路徑爲用戶的家目錄;通過複製/etc/skel此目錄並重命名實現;

指定的家目錄路徑如果事先存在,則不會爲用戶複製環境配置文件;

/etc/skel中有用戶家目錄中需要的隱藏文件,一般每個用戶家目錄中都有,是創建用戶時

自動把skel目錄複製過去,並更名爲用戶家目錄的。但如果設定已存在的目錄爲用戶家目錄,

則不會複製這些隱藏文件,原目錄的數據不會丟失

[root@yph7 tmp]# ls -a /etc/skel

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

[root@yph7 tmp]# ls -a /home/breeze

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

[root@yph7 tmp]# ls /tmp/oracle1/

a_c  a_d  b_c  b_d

[root@yph7 tmp]# useradd -d /tmp/oracle1 oracle1

-useradd:警告:此主目錄已經存在。

不從 skel 目錄裏向其中複製任何文件。

[root@yph7 tmp]# ls /tmp/oracle1

a_c  a_d  b_c  b_d

 

-s, --shell SHELL:指定用戶默認shell,可用的shell列表存儲在/etc/shells

[root@yph7 tmp]# useradd -s /sbin/nologin mysql7

[root@yph7 tmp]# tail -n 1 /etc/passwd

mysql7:x:2009:2009::/home/mysql7:/sbin/nologin

/sbin/nologin是不允許登陸的系統用戶的shell

-r, --system:創建系統用戶

-M--no-create-home:不創爲用戶建用戶主目錄,即使系統在 /etc/login.defs 中的設置 (CREATE_HOME)  yes

-f--inactive:密碼過期後,賬戶被徹底禁用之前的天數,0表示立即禁用,-1表示不用此功能,默認爲-1

 

注意:創建用戶是的諸多默認設置配置文件/etc/login.defs

 

-D--defaults:顯示創建用戶的默認配置  

 

 

[root@yph7 tmp]# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes   每創建一個用戶默認創建一個郵筒/var/spool/mail

-D options:修改配置信息

-e,-f,-g,-s,

修改結果保存於/etc/default/useradd

如果要修改這些配置信息,就用如下方式

[root@yph7 tmp]# useradd -D -s /bin/tcsh

[root@yph7 tmp]# useradd mysql8

[root@yph7 tmp]# tail -n 1 /etc/passwd

mysql8:x:2010:2010::/home/mysql8:/bin/tcsh

 

[root@yph7 tmp]# ls /var/spool/mail

bree    flimmer  gentoo  mageedu mysql2  mysql5  mysql7  mysqle   rpc

breeze  flivfox  hadoop  mydql4   mysql3 mysql6  mysql8  oracle1  slackware

 

 

usermod:  modify a user account   id 查看

 

-u, --uid  :修改用戶的ID

[root@yph7 tmp]# id hadoop

uid=2001(hadoop) gid=2001(hadoop) =2001(hadoop)

[root@yph7 tmp]# usermod -u 2051 hadoop

[root@yph7 tmp]# id hadoop

uid=2051(hadoop) gid=2001(hadoop) =2001(hadoop)

 

-g--gid  :修改用戶基本組

[root@yph7 tmp]# usermod -g breeze hadoop; id hadoop

uid=2051(hadoop) gid=1004(breeze) =1004(breeze)

 

-G--groups:修改附加組,原來的附加組會被覆蓋

[root@yph7 tmp]# usermod -G flivfox hadoop ;id hadoop

uid=2051(hadoop) gid=1004(breeze) =1004(breeze),1005(flivfox)

[root@yph7 tmp]# usermod -G flimmer hadoop;id hadoop

uid=2051(hadoop) gid=1004(breeze) =1004(breeze),1006(flimmer)

 

-a--append:附加,只能與-G一同使用,追加附加組,且一次只能增加一個

usermod -a -G

[root@yph7 tmp]# usermod  -a -G   flivfox hadoop ;idhadoop

uid=2051(hadoop) gid=1004(breeze) =1004(breeze),1005(flivfox),1006(flimmer)

注意:-a必須寫在-G 前面,

 

-c--comment  修改註釋信息

[root@yph7 tmp]# usermod -c "I am a stupid bird"mysql8

mysql8:x:2010:2010:I am a stupid bird:/home/mysql8:/bin/tcsh

 

-d--home DIR:修改家目錄,但用戶原有文件不會移動至新目錄,而且用戶仍然受新家目錄權限的限制

[root@yph7 ~]# useradd gentoo

[root@yph7 ~]# ll -d  /tmp/gentoo

drwxr-xr-x. 2 root root 6 Dec 13 17:16 /tmp/gentoo

[root@yph7 ~]# usermod -d /tmp/gentoo gentoo

[root@yph7 ~]# su -c "cd;pwd" gentoo

/tmp/gentoo

[root@yph7 ~]# ls -a /tmp/gentoo

.  ..

[root@yph7 ~]# ls -a /home/gentoo

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

 

 

-m--move-home:與-d起使用,把原家目錄剪切至新家目錄,新家目錄事先不能存在

[root@yph7 ~]# ll /var/tmp/

drwxr-xr-x. 2 abrt abrt 6 Mar 24  2015 abrt

[root@yph7 ~]# usermod -m -d /var/tmp/gentoo gentoo

[root@yph7 ~]# ls -a /var/tmp/gentoo

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

[root@yph7 ~]# ll -a /home/gentoo

ls: cannot access /home/gentoo: No such file or directory

 

-l--login NEW_LOGIN:修改用戶名

[root@yph7 tmp]# usermod -l oracle2 mysql8

[root@yph7 tmp]# id oracle2

uid=2010(oracle2) gid=2010(mysql8) =2010(mysql8)

 

-s--shell SHELL:修改用戶的默認shell

[root@yph7 tmp]# tail  -1 /etc/passwd

oracle2:x:2010:2010:I am a stupid bird:/home/mysql8:/bin/tcsh

[root@yph7 tmp]# usermod -s /bin/bash oracle2

[root@yph7 tmp]# tail -n 1 /etc/passwd

oracle2:x:2010:2010:I am a stupid bird:/home/mysql8:/bin/bash

 

-L--lock:鎖定用戶密碼,禁止登陸,即在用戶原來的密碼字符串之前添加一個"!"

[root@yph7 ~]# usermod -L oracle2

[root@yph7 ~]# tail -1 /etc/shadow

oracle2:!$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

 

-U--unlock:解鎖用戶密碼,去掉!

[root@yph7 ~]# usermod -U oracle2

[root@yph7 ~]# tail -n 1 /etc/shadow

oracle2:$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

 

userdel- delete a user accountand related files

 

刪除用戶默認刪除基本組

-r--remove:刪除用戶時一併刪除用戶家目錄

[root@yph7 ~]# ls /home

bree    flimmer  gentoo  mageedu mysql2  mysql5  mysql7  mysqle

[root@yph7 ~]# userdel -r mysql7 ;id mysql7

id: mysql7: no such user

[root@yph7 ~]# ls /home

bree    flimmer  gentoo  mageedu mysql2  mysql5  mysqle

 

練習1:創建用戶gentooUID4001,基本組爲gentoo,附加組爲distro(GID5000)peguin(GID5001)

[root@yph7 tmp]# groupadd -g 5000 distro

[root@yph7 tmp]# groupadd -g 5001 peguin

[root@yph7 tmp]# tail -2 /etc/group

distro:x:5000:

peguin:x:5001:

[root@yph7 tmp]# useradd -u 4001 -G distro,peguin gentoo

[root@yph7 tmp]# id gentoo

uid=4001(gentoo) gid=4001(gentoo)groups=4001(gentoo),5000(distro),5001(peguin)

 

練習2:創建用戶fedora,其註釋信息爲"Fedora Core",默認shell/bin/tcsh

[root@yph7 tmp]# useradd -c "Fedora Core" -s/bin/tcsh fedora

[root@yph7 tmp]# tail -1 /etc/passwd

fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh

 

練習3:修改gentoo用戶的家目錄爲/var/tmp/gentoo;要求其原有文件仍能被用戶訪問;

 

練習4:爲gentoo新增附加組;

[root@yph7 tmp]# groupadd netadmin

[root@yph7 tmp]# usermod -a -G netadmin gentoo

[root@yph7 tmp]# id gentoo

uid=4001(gentoo) gid=4001(gentoo)groups=4001(gentoo),5000(distro),5001(peguin),5002(netadmin)

 


 

 

 

passwd- update user'sauthentication tokens

 

(1)passwd直接修改自己的密碼

[flimmer@yph7 ~]$ passwd

Changing password for user flimmer.

Changing password for flimmer.

(current) UNIX password:

 

(2)passwd username ,管理員修改其他用戶密碼

[root@yph7 ~]# passwd hadoop

Changing password for user hadoop.

New password:

 

-l-ulockunlock鎖定和解鎖用戶密碼

[root@yph7 ~]# passwd -l oracle2

Locking password for user oracle2.

passwd: Success

[root@yph7 ~]# tail -1 /etc/shadow

oracle2:!!$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

 

[root@yph7 ~]# passwd -u oracle2

Unlocking password for user oracle2.

passwd: Success

[root@yph7 ~]# tail -1 /etc/shadow

oracle2:$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

 

-d--delete清除用戶密碼

[root@yph7 ~]# passwd -d oracle2

Removing password for user oracle2.

passwd: Success

[root@yph7 ~]# tail -1 /etc/shadow

oracle2::16781:0:99999:7:::

此時oracle2不用輸入密碼就能登錄

[flimmer@yph7 ~]$ su - oracle2

[oracle2@yph7 ~]$

 

-e --expire:使期滿,必須修改密碼才能登錄

[root@yph7 ~]# passwd -e   oracle2

Expiring password for user oracle2.

passwd: Success

 

然後該用戶就無法登錄了,只有先修改密碼

[oracle2@yph7 ~]$ su - oracle2

密碼:

您需要立即更改密碼(root 強制)

 oracle2 更改STRESS 密碼。

(當前)UNIX 密碼:

 

-i--inactive DAYS:非活動期限,不改密碼不能登錄,超期限就鎖定

[root@yph7 ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:0:99999:7:::

[root@yph7 ~]# passwd -i 10 oracle2

Adjusting aging data for user oracle2.

passwd: Success

[root@yph7 ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:0:99999:7:10::

-n,--minimum DAYS,最小使用期限

-x--maximum DAYS最大使用期限

[root@yph7 ~]# passwd -n 3 -x 30 oracle2

Adjusting aging data for user oracle2.

passwd: Success

[root@yph7 ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:3:30:7:10::

 

-w--warning DAYS,提前多少天警告,警告期限

[root@yph7 ~]# passwd -w 5 oracle2

Adjusting aging data for user oracle2.

passwd: Success

[root@yph7 ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:9:30:5:10::

 

--stdin

echo "string" | passwd --stdin  breeze  只輸入一次就能修改密碼成 mageedu

[root@yph7 ~]# echo "mageedu" | passwd --stdin oracle2 &> /dev/null ;echo $?

0

[root@yph7 ~]#

-S,--state:This will output a short information about thestatus of the password for a given  account

可用來代替/etc/shadow查看密碼狀態

[root@yph7 tmp]# passwd -S redhat

redhat LK 2015-12-13 0 99999 7 9 (Password locked.)

[root@yph7 tmp]# tail -1 /etc/shadow

redhat:!!:16782:0:99999:7:9::

[root@yph7 tmp]# echo "redhat" | passwd --stdinredhat

Changing password for user redhat.

passwd: all authentication tokens updated successfully.

[root@yph7 tmp]# passwd -S redhat

redhat PS 2015-12-13 0 99999 7 9 (Password set, SHA512 crypt.)

[root@yph7 tmp]# tail -1 /etc/shadow

redhat:$6$kN......x1:16782:0:99999:7:9::



chage- change userpassword expiry information更改密碼和過期信息    16778:0:99999:7:::

 

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ..............E06d.Ape0:16781:0:99999:7:::

 

-d,--lastday:指定密碼上一次最後修改的日期,可用datedays表示,結果爲距離1970-01-01多少天

[root@yph7 ~]# chage -d 1998-12-12 oracle1

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ...........E06d.Ape0:10572:0:99999:7:::

 

[root@yph7 ~]# chage -d 15000 oracle1

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ...........E06d.Ape0:15000:0:99999:7:::

 

-m,--mindaysa:密碼至少使用多久,0表示無限制

[root@yph7 ~]# chage -m 5 oracle1

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ............E06d.Ape0:15000:5:99999:7:::

 

-M,--maxdays:密碼最多使用多久

[root@yph7 ~]# chage -M 30 oracle1

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ............E06d.Ape0:15000:5:30:7:::

 

-W,--warning:密碼過期前多少天開始警告

[root@yph7 ~]# chage -W 9 oracle1

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ.............E06d.Ape0:15000:5:30:9:::

 

-E,--expiredate:密碼有效期到什麼時候,可以是datedays0立即過期。-1禁用此功能,永不過期

倒數第二個屬性

[root@yph7 ~]# chage -E 2050-12-12 oracle1

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ..............E06d.Ape0:15000:5:30:9::29565:

 

[root@yph7 ~]# chage -E 88888 oracle1

[root@yph7 ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ..............E06d.Ape0:15000:5:30:9::88888:

 



 

groupadd - create a new group

 

[root@yph7 ~]# groupadd stupid

[root@yph7 ~]# tail -1 /etc/group

stupid:x:2053:

 

-g GID:指定GID,默認上一個組加1

[root@yph7 tmp]# groupadd -g 2999 foolbird

[root@yph7 tmp]# tail -1 /etc/group

foolbird:x:2999:

 

-r:創建系統組

[root@yph7 tmp]# groupadd -r deepin

[root@yph7 tmp]# tail -1 /etc/group

deepin:x:991:    -->id991 系統組id1-999

 

groupdel- delete a group刪除組

[root@yph7 tmp]# groupdel awkuid

[root@yph7 tmp]# tail -1 /etc/group

foolbird:x:2999:

 

groupmod - modify a groupdefinition on the system

-g GID:修改GID

[root@yph7 tmp]# groupmod -g 3333 foolbird

[root@yph7 tmp]# tail -1 /etc/group

foolbird:x:3333:

 

-n new_name:修改組名

[root@yph7 tmp]# groupmod -n awkuid foolbird

[root@yph7 tmp]# tail -1 /etc/group

awkuid:x:3333:




gpasswd:  administer /etc/group and /etc/gshadow

 

給組加密碼

[root@yph7 ~]# gpasswd apache

Changing the password for group apache

New Password:

 

-a--addUSERNAME:向組中添加用戶

[root@yph7 ~]# id flimmer

uid=1006(flimmer) gid=1006(flimmer) groups=1006(flimmer)

[root@yph7 ~]# gpasswd -a flimmer apache

Adding user flimmer to group apache

[root@yph7 ~]# id flimmer

uid=1006(flimmer) gid=1006(flimmer)groups=1006(flimmer),2011(apache)

 

[root@yph7 ~]# tail -1 /etc/group

stupid:x:2053:

[root@yph7 ~]# gpasswd -a flimmer stupid

正在將用戶“flimmer”加入到“stupid”組中

[root@yph7 ~]# tail -1 /etc/group

stupid:x:2053:flimmer

 

-d--deleteUSERNAME:從組中一出移除用戶

 

[root@yph7 tmp]# gpasswd -d flimmer stupid

Removing user flimmer from group stupid

[root@yph7 tmp]# tail -1 /etc/group

stupid:x:2053:

 

[root@yph7 ~]# gpasswd -d flimmer apache

Removing user flimmer from group apache

[root@yph7 ~]# id flimmer

uid=1006(flimmer) gid=1006(flimmer) groups=1006(flimmer)

[root@yph7 ~]#

 

newgrp [-] GROUP- log in to a new group臨時切換基本組,id查看,exit退回原來基本組,因爲創建文件權限屬於基本組的

-:會模擬用戶重新登錄以實現重新初始化其工作環境

 

切換到不同的基本組,創建的文件的屬主是不同的,

基本組不是誰都能進的,所以加密碼

 

[breeze@yph7 ~]$ id -ng

breeze

[breeze@yph7 ~]$ ll

總用量 0

[breeze@yph7 ~]$ touch text;ll

總用量 0

-rw-rw-r--. 1 breeze breeze 0 12 13 00:33 text

[breeze@yph7 ~]$

[breeze@yph7 ~]$ newgrp apache

密碼:

[breeze@yph7 ~]$ id -ng

apache

[breeze@yph7 ~]$ touch txt;ll

總用量 0

-rw-rw-r--. 1 breeze breeze 0 12 13 00:33 text

-rw-r--r--. 1 breeze apache 0 12 13 00:34 txt

[breeze@yph7 ~]$ exit

exit

[breeze@yph7 ~]$ id -ng

breeze

 

但用idid breeze查看到的基本組是不同的

[breeze@yph7 ~]$ id

uid=1004(breeze) gid=2011(apache) =1004(breeze),2011(apache) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

 

[breeze@yph7 ~]$ id breeze

uid=1004(breeze) gid=1004(breeze) =1004(breeze)

 

 


id: - print real and effective user and group IDs顯示用戶真實,有效ID

[root@yph7 ~]# id hadoop

uid=2051(hadoop) gid=1004(breeze)groups=1004(breeze),1005(flivfox),1006(flimmer)

 

-u--user:僅顯示有效UID

[root@yph7 ~]# id -u hadoop

2051

 

-g,--group:基本組ID

[root@yph7 ~]# id -g hadoop

1004

 

-G,--groups:所屬:所有組ID

[hadoop@yph7 ~]$ id -G

1004 1005 1006

 

-n,--name:顯示組名而非ID

[hadoop@yph7 ~]$ id -nG hadoop

breeze flivfox flimmer

[hadoop@yph7 ~]$ id -nu

hadoop

[hadoop@yph7 ~]$ id -ng

breeze

[hadoop@yph7 ~]$ id -nG

breeze flivfox flimmer

 

su switch user

 

登陸式切換:會重新讀取目標用戶的配置文件來重新初始化

su - breeze

su -l breeze


非登陸式切換:不會重新讀取目標用戶的配置文件來重新初始化

su  breeze    所在目錄可能是上個用戶的家目錄,而不是自己的

 

[flimmer@yph7 ~]$ su breeze

密碼:

[breeze@yph7 flimmer]$

 

-ccommand:僅以指定用戶的身份執行命令,而不是登陸

su -c "whoami" breeze         su -c "ls /tmp" breeze

 

[root@yph7 ~]# su -c "whoami" breeze

breeze

[root@yph7 ~]#

 

[root@yph7 ~]# su -c "touch /home/breeze/{text,txt};ls -l/home/breeze" breeze

total 0

-rw-r--r--. 1 breeze breeze 0 Dec 13 00:52 text

-rw-r--r--. 1 breeze breeze 0 Dec 13 00:52 txt

 

管理員切換普通用戶不用密碼

幾個其他命令:chshchfn,finger,

 

finger breeze  chsh  瞭解就行

 

[root@yph7 ~]# chsh mysql5      更改shell

Changing shell for mysql5.

New shell [/bin/bash]: /bin/tcsh

Shell changed.

 

[root@yph7 ~]# chfn hadoop    改寫註釋信息

Changing finger information for hadoop.

名稱 [hadoop]: hadoop

辦公 [fuck]: whitewall

辦公電話 [10086]: 10086

住宅電話 [110]: 110

Finger information changed.

 

[root@yph7 ~]# cat /etc/passwd

....................

hadoop:x:2051:1004:hadoop,whitewall,10086,110:/home/hadoop:/bin/bash

....................

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章