千家信息网

用户的管理

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,用户和组管理的相关命令:useradd、usermod、passwd、userdelgroupadd、groupmod、gpasswd、groupdelchage,chsh, chfnid,w, wh
千家信息网最后更新 2025年01月21日用户的管理

用户和组管理的相关命令:

useraddusermodpasswduserdel

groupaddgroupmodgpasswdgroupdel

chage,chsh, chfn

id,w, who, whoami

su

useradd:创建用户

-r: 创建系统用户

-uUID: 指定UID

-gGID: 指定用户所属基本组,此组必须事先存在

-c'COMMENT'

-d/PATH/TO/SOMEWHERE:指定用户的主目录路径;此位置不能事先存在,否则,其用户相关配置文件将被复制;/etc/skel

-sSHELL:设定用户的默认shell

cat/etc/shells

-GGID,...:指定所属的附加组;

-M:不给用户创建家目录;

练习:创建用户Oracle,所属附加组databasesqlID号为3000, 家目录为/home/database

[root@localhost ~]# groupadd database     --首先创建两个附加的组[root@localhost ~]# groupadd sql[root@localhost ~]# useradd -G database,sql-u 3000 -d /home/database Oracle[root@localhost ~]# tail /etc/group   查看创建的用户fuse:x:494:sshd:x:74:stapusr:x:156:stapsys:x:157:stapdev:x:158:tcpdump:x:72:slocate:x:21:database:x:500:Oraclesql:x:501:OracleOracle:x:3000:[root@localhost ~]# tail -1 /etc/groupOracle:x:3000:[root@localhost ~]# tail -1 /etc/passwdOracle:x:3000:3000::/home/database:/bin/bash[root@localhost ~]#

groupadd:创建组

groupadd[OPTIONS] GROUPNAME

-gGID: 指明组ID

-r 创建系统组;

[root@localhost ~]# groupadd database     --创建两个附加的组[root@localhost ~]# groupadd sql[root@localhost ~]# tail -3 /etc/groupdatabase:x:500:Oraclesql:x:501:OracleOracle:x:3000:

suswitch user, 切换用户或以其它用户的身份执行命令;

切换方式:

suUSERNAME: 非完全切换;非登录式切换

su- USERNAMEsu -l USERNAME: 完全切换;登录式切换

仅以指定用户的身份执行指定的命令:

su- USERNAME -c 'COMMAND'

非完全切换;非登录式切换:

[root@localhost ~]# su Oracle[Oracle@localhost root]$ iduid=3000(Oracle) gid=3000(Oracle)groups=3000(Oracle),500(database),501(sql) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023[Oracle@localhost root]$ pwd/root[Oracle@localhost root]$ exit

完全切换;登录式切换

[root@localhost ~]# su - Oracle[Oracle@localhost ~]$ iduid=3000(Oracle) gid=3000(Oracle)groups=3000(Oracle),500(database),501(sql) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023[Oracle@localhost ~]$ pwd/home/database[Oracle@localhost ~]$

usermod:用户属性修改

usermod[OPTION]... LOGIN

-uUID

-gGID

-GGID[,GID,...]:修改用户所属的附加组;同时使用-a选项;

-sSHELL

-c'COMMENT'

-dHOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;

-lLOGIN

-Llock user

-U:unlock user

[root@localhost ~]# id Oracleuid=3000(Oracle) gid=3000(Oracle)groups=3000(Oracle),500(database),501(sql)[root@localhost ~]# usermod -u 3001 Oracle[root@localhost ~]# id Oracleuid=3001(Oracle) gid=3000(Oracle)groups=3000(Oracle),500(database),501(sql)

passwd:给用户添加密码

passwd[OPTION] [UserName]

-l:lock user

-u:unlock user

-nmindays: 最短使用期限;

-xmaxdays:默认为99999天;

-wwarndays

-iinactivedays

--stdin:从标准输出接收用户密码;

[root@localhost ~]# passwd OracleChanging password for user Oracle.New password:BAD PASSWORD: it is based on a dictionarywordBAD PASSWORD: is too simpleRetype new password:passwd: all authentication tokens updatedsuccessfully.[root@localhost ~]#[root@localhost ~]# echo 'centos' | passwd--stdin OracleChanging password for user Oracle.passwd: all authentication tokens updatedsuccessfully.[root@localhost ~]#

userdel:删除用户

userdel[-r] USERNAME

-r:删除用户的同时删除其家目录;

[root@localhost ~]# id Oracleuid=3000(Oracle) gid=3000(Oracle)groups=3000(Oracle),500(database),501(sql)[root@localhost ~]# userdel -r Oracle[root@localhost ~]# id Oracleid: Oracle: No such user

groupmod: 组属性修改

groupmod[OPTION] GROUPNAME

-nGROUP_NAME

-gGID

[root@localhost ~]# cat /etc/group | tail-n 2database:x:500:sql:x:501:[root@localhost ~]# groupmod database -nssd  --将database组名换成ssd[root@localhost ~]# cat /etc/group | tail-n 2sql:x:501:ssd:x:500:[root@localhost ~]# groupmod -g 505 sql[root@localhost ~]# cat /etc/group | tail-n 2    --将sql的gid换成505sql:x:505:ssd:x:500:[root@localhost ~]#

gpasswd:设定组密码

        参数:-a:添加用户到组-d:从组删除用户-A:指定管理员-M:指定组成员和-A的用途差不多-r:删除密码-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
[root@localhost ~]# gpasswd ssd
Changing the password for group ssd
New Password:
Re-enter new password:
[root@localhost ~]# cat /etc/gshadow | tail -n 2
sql:!::
ssd:$6$zE9XjK8uLG/aA$N9xUWJyWSsjPdzW0zyjV8RlafMuA1TXjfHCDMXq2hF37I6zrtHz64eh6YRy43sMjdwWY6G.wBnQMGZ9bgdiIq.::
[root@localhost ~]#
 
 
newgrp:切换基本组为指定的组
[root@localhost ~]# newgrp ssd
 
groupdel:删除组
[root@localhost ~]#  cat /etc/group | tail -n 2
sql:x:505:
ssd:x:500:
[root@localhost ~]# groupdel ssd
[root@localhost ~]#  cat /etc/group | tail -n 2
slocate:x:21:
sql:x:505:
[root@localhost ~]#
 
 
chage:修改用户账号及密码的属性
                       chage [OPTION]... LOGIN
                               参数意思:  -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。  -M 密码保持有效的最大天数。  -W 用户密码到期前,提前收到警告信息的天数。  -E 帐号到期的日期。过了这天,此帐号将不可用。  -d 上一次更改的日期  -I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。  -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
 [root@localhost ~]# useradd oracle

[root@localhost ~]# cat /etc/passwd | tail-n 1

oracle:x:500:500::/home/oracle:/bin/bash

[root@localhost ~]# chage -l oracle

Last password change : Aug 27,2015

Password expires : never

Password inactive : never

Account expires :never

Minimum number of days between passwordchange : 0

Maximum number of days between passwordchange : 99999

Number of days of warning before passwordexpires : 7

[root@localhost ~]# chage -M 90 oracle

[root@localhost ~]# chage -d 0 -m 0 -M 90-W 15 oracle

[root@localhost ~]# chage -l oracle

Last password change : passwordmust be changed

Password expires : password must be changed

Password inactive :password must be changed

Account expires :never

Minimum number of days between passwordchange : 0

Maximum number of days between passwordchange : 90

Number of days of warning before passwordexpires : 15

[root@localhost ~]#


0