Linux用户操作命令

1.新建用户

1.1 useradd 添加用户

useradd 用户名

#添加一个用户名是 oracle 的用户,组 ID 是 666,家目录是 /oracle,用户说明是"oracle测试用户"
useradd -u 666 -d /oracle -c "oracle测试用户" oracle
选项 解释
-u UID,手动为用户设置组 ID
-d directory,家目录,手工指定用户的家目录
-c comment,用户说明,手工指定用户的说明,如果有空格,需要将说明文字用双引号括起来
-g group,组名,手工指定用户的初始组
-G group,组名,手工指定用户的附加组,如果有多个附加组,用空格隔开
-s shell,命令解释器手工指定用户的登录 shell,默认是 /bin/bash

1.2 passwd 密码设置

新添加的用户需设置密码才能登录

passwd [选项] [用户名]

passwd oracle

root 用户可以修改任何用户的密码,只要在 passwd 后面跟相应的用户名即可。普通用户只能修改自己的密码,这时只要输入 passwd,然后回车就可以,后面无需跟用户名。

alt

1.2.1 -S 查询用户的密码状态

passwd -S oracle

alt

这里显示的信息其实就是 /etc/shadow 文件中用户 oracle 的密码信息。

1.2.2 -l 锁定用户 -u 解锁用户

-l 是 lock 的意思,而 -u 就是 unclock。

#锁定用户
passwd -l oracle 

#解锁用户
passwd -u oracle 

锁定用户时,Linux 执行的操作其实就是在 shadow 文件中,该用户的密码前面加了两个感叹号。

alt

所以也可以通过手工修改 shadow 文件的方式来锁定和解锁用户。

alt

1.2.3 --stdin 使用字符串作为用户的密码

#将用户 oracle 的密码设置为123
echo "123" | passwd --stdin oracle 

在 shell 编程的时候可能会用到这种方法,用于一次给多个用户设置初始密码。

2. 授权

更改文件的 所属组 和 所有者

# 更改所有者
chown -R 用户名 文件路径

# 更改所属组
chgrp -R 组名 文件路径

# 即更改所有者,又更改所属组
chown -R 用户名.组名 文件路径

alt

3. usermod 修改用户信息

usermod [选项] 用户名

#修改用户 oracle 的描述信息
uermod -c "General user" oracle

usermod 和 useradd 的功能类似,区别在于 usermod 命令的操作对象是已存在的用户,useradd 命令的操作对象是将要添加的新用户。正因如此,usermod 和 useradd 命令的部分选项是一样的

选项 解释
-u UID,手动为用户设置组 ID
-c comment,用户说明
-g 初始组 ID修改,用户的初始组,一般不建议修改
-G 附加组 ID定义用户所属的附加组,若有多个,用逗号分隔开
-L sLock临时锁定用户
-U Unlock解除临时锁定

4. chage 修改用户密码状态

chage -l oracle 

#将该用户最后一次修改密码的日期改成1970年1月1日,也就是把shadow文件的第3字段归0
chage -d 0 oracle 

有时候,我们需要批量创建用户,并给这些用户设置一个初始密码,但是我们希望用户登录的时候将初始密码改掉,一遍增强系统的安全性。所以,只要我们将每个用户的最后一次修改密码的日期改成 1970 年 1 月 1 日,在他们首次登录时,系统会强制要求他们更改密码。

alt

这些选项本质上都是修改 /etc/shadow 文件

选项 解释
-l 查看用户密码信息
-d 修改用户最后一修改密码的日期
-m 两次密码修改间隔(shadow 文件第 4 字段)
-M 密码有效期(5字段)
-W 密码过期前警告天数(6字段)
-I 密码过后宽限天数(7字段)
-E 账号失效时间(8字段)

5. userdel 删除用户

这个命令一般要加上 -r 选项,也就是这种格式:userdel -r 用户名。意思是,删除用户的同时删除该用户的家目录以及其他与该用户相关的文件。

6. id 查看用户ID和用户所在的组的ID

id 用户名

alt

7. su 用户切换命令

su 是 switch user 的简写,su 命令的一般用法是:su - 用户名

注意:中间的那个短线不能省略,而且短线两侧有空格。

su - oracle

su root

#查看环境变量
env

从普通用户切换到 root 用户或者从普通用户切换到另一个普通用户需要输入密码,但是从 root 用户切换到普通用户不需要输入密码。

不加-切换到root用户时 包括当前登录的用户名、家目录、用户邮箱等,还都是原来的 oracle,而不是 root。

alt

从这里了也可以看出区别

alt

  • 以 root 用户的身份执行命令

还有一种场景,是我不需要切换到 root 用户,只需要用 root 权限执行一条命令,比如添加用户的命令 useradd。这时可以用 -c 选项。

#以root用户的身份添加一个用户
su - root -c "useradd user1"

8. 查看登录用户信息

8.1 who

使用 who 命令可以查看当前有多少用户正在登录。

alt

  • tty 表示本地终端

  • pts 表示远程终端,pts 后面的数字用来区别不同的远程终端

8.2 w

使用 w 命令可以查看更详细的登录用户信息。

alt

9. 用户组管理命令

组管理命令实际就是操作 /etc/group 文件内容,直接编辑此文件内容也可以达到同样效果。

9.1 添加用户组

groupadd [选项] 组名

#添加一个名为orcle的组,组ID由系统默认生成
groupadd orcle

#添加一个名为orcle的组,指定组ID是666
groupadd -g 666 orcle

alt

alt

选项 解释
-g GID 作用:指定组 ID

9.2 修改用户组

groupmod [选项] 组名

#将orcle组改名为oracle2
groupmod -n oracle2 orcle

alt

alt

选项 解释
-g GID 作用:修改组ID
-n 新组名 作用:修改组名

9.3 删除用户组

groupdel 组名

#删除oracle2组
groupdel oracle2

alt

alt

注意:如果该组是某个用户的初始组,那么这个组无法被删除,因为如果把这个组删了,用户就没地方放了。如果没有用户将该组当做初始组,而只是把它当做附加组,那么这个组就可以被删除。

9.4 把用户加入组或从组中删除

gpasswd [选项] 组名

#把oracle用户加入root组
gpasswd -a oracle root

#把user3用户从root组中删除
gpasswd -d oracle root

alt

alt

alt

选项 解释
-a 把用户加入组
-d 把用户从组中删除

这里执行的把用户加入组的操作,事实上是作为附加用户加入该组的,以上面那条命令为例,执行完该命令后,root 组其实是成为了 oracle 用户的附加组。

Linux 文章被收录于专栏

Linux

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务