Linux用户操作命令

目录

1. 新建用户

1.1 useradd 添加用户

1.2 passwd 密码设置

1.2.1 查询用户的密码状态

1.2.2 锁定用户、解锁用户

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

2. 授权

3. usermod 修改用户信息

4. chage 修改用户密码状态

5. userdel 删除用户

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

7. su 用户切换命令

8. 查看登录用户信息

8.1 who

8.2 w

9. 用户组管理命令

9.1 添加用户组

9.2 修改用户组

9.3 删除用户组

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


1. 新建用户

1.1 useradd 添加用户

useradd 用户名

#添加一个用户名是 oracle 的用户,组 ID 是 666,家目录是 /oracle,用户说明是"oracle测试用户"
useradd -u 666 -d /oracle -c "oracle测试用户" oracle

选项解释
-uUID,手动为用户设置组 ID
-ddirectory,家目录,手工指定用户的家目录
-ccomment,用户说明,手工指定用户的说明,如果有空格,需要将说明文字用双引号括起来
-ggroup,组名,手工指定用户的初始组
-Ggroup,组名,手工指定用户的附加组,如果有多个附加组,用空格隔开
-sshell,命令解释器手工指定用户的登录 shell,默认是 /bin/bash

1.2 passwd 密码设置

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

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

选项解释
-S

查询用户的密码状态

-l lock,锁定用户
-uunclock,解锁用户
-stdin

使用字符串作为用户的密码

passwd [选项] [用户名]

passwd oracle

1.2.1 查询用户的密码状态

passwd -S oracle

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

1.2.2 锁定用户、解锁用户

#锁定用户
passwd -l oracle 

#解锁用户
passwd -u oracle 

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

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

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

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

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

2. 授权

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

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

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

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

3. usermod 修改用户信息

usermod [选项] 用户名

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

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

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

4. chage 修改用户密码状态

chage -l oracle 

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

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

这些选项本质上都是修改 /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 用户名

7. su 用户切换命令

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

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

su - oracle

su root

#查看环境变量
env

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

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

  • 从这里了也可以看出区别

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

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

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

8. 查看登录用户信息

8.1 who

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

  • tty 表示本地终端

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

8.2 w

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

9. 用户组管理命令

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

9.1 添加用户组

groupadd [选项] 组名

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

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

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

9.2 修改用户组

groupmod [选项] 组名

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

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

9.3 删除用户组

groupdel 组名

#删除oracle2组
groupdel oracle2

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

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

gpasswd [选项] 组名

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值