Linux 用户、组、权限操作

1. Linux 用户、组、权限操作

1.1. 用户命令

# 创建用户
useradd haha

# #为该用户设置密码
passwd haha

# 正确删除用户
userdel -r haha

# 查看当前用户
id
# 查看是否有该用户
id john

1.1.1. 删除用户

使用 userdel haha 命令删除该用户时, 并不能删除该用户的所有信息, 只是删除了 /etc/passwd/etc/shadow/etc/group//etc/gshadow 四个文件里的该账户和组的信息。默认情况下创建一个用户账号, 会创建一个家目录和一个用户邮箱 (在 /var/spool/mail 目录以用户名命名)。下次再创建用户时, 就会出现用户已存在。

正确删除用户:

userdel -r haha

再使用 find 命令查看, 用户相关文件已经删除。

find / -name "*haha*"

1.2. 组

# 查看当前组
groups
# 查看是否有该组
groups zhu

# 删除组
groupdel zhu

id -g

# To get all the groups I belong
id -G

# And to get the actual names, instead of the ids, just pass the flag -n.
id -Gn

# This last command will yield the same result as executing
groups

1.2.1. 查看 /etc/group

/etc/group 是用户组配置文件, 可以查看此文件通过 grep 查询某个用户所在的用户组

cat /etc/group | grep wuliang

1.2.2. id 命令法

id 命令也可以查看某个用户所属的用户组

只执行 id 命令, 可以查看系统当前登录用户的用户组

id wuliang, 查询特定用户的用户组, 在 id 后面跟用户名即可

1.2.3. linux 将用户加入到 root 组

打开终端并以 root 用户身份登录。

输入以下命令将用户添加到 root 组:

usermod -aG root username

其中, username 是要添加到 root 组的用户名。

确认用户已经被添加到 root 组, 可以使用以下命令:

groups username

其中, username 是要确认的用户名。如果用户已经被添加到 root 组, 那么输出结果中应该包含 root 组。

1.3. 用户权限

在 Linux 中定义文件或者文件夹的权限为 “777”, 就是所有的权限, 4 是读的权限, 2 是写的权限, 1 是执行的权限, 7 就是所有权限。

1.3.1. 三种权限

Linux 下的每个文件都有以下三种权限:

  • r: 表示读取, 对应的数字为 4;
  • w: 表示写入, 对应的数字为 2;
  • x: 表示执行, 对应的数字为 1;

通过 4、2、1 的组合, 我们可以得到以下几种权限:

  • 0: 没有权限, 用 - 表示
  • 4: 读取权限, 用 w 表示
  • 5: 读取和执行权限, 用 rx 表示
  • 6: 读取和写入权限, 用 rw 表示
  • 7: 读取、写入和执行权限, 用 rwx 表示

1.3.2. 三个对象

在上面已经说明 7 表示读取、写入和执行权限。但是为啥是三位数字呢? 比如 777

其实, 三位是指三个不同的对象,

  • User: 文件所属者
  • Group: 文件所属组
  • Other: 其他人

1.4. sudo 下某些 command not found

原因是 root 用户的环境变量与其它用户是不一样的, 所以找不到命令。有以下两种解决方法。

1.4.1. 使用 etc/sudoers 文件里面的 secure_path 属性

可以使用替换 secure_path 值而不是附加它, 则可以使用更简单的解决方案。通常 sudo 有一个像 /etc/sudoers.d 这样的配置目录, 您可以在其中删除其他配置文件。只需使用完整的 secure_path 值创建一个文件:

$ sudo visudo

Defaults secure_path="<default value>:/usr/local/bin"

这会覆盖主配置中的值。如果所有计算机的路径值相同, 则可以使用脚本或程序包轻松部署。

这还有一个额外的好处, 即在将来更新 sudo 包时, 您不必检查并可能合并配置文件。

1.4.2. 使用软链接

将其它路径下的执行文件软链接到 /usr/bin(其它 root 用户 “必须的命令目录” 也行), 这样就可以找到了。

ln -s aaa /usr/bin/aaa

如何查看 root 用户的 “必须的命令目录”: 切换到 root 用户下, 用 echo $PATH 查看有哪些路径就好了。

1.5. How To Find Out My Linux Distribution Name and Version

  1. /etc/*-release file – Print Linux distribution name and version.
  2. lsb_release command – Show Linux distribution-specific information.
  3. /proc/version file – Use this file to see Linux kernel version that is currently running.
  4. hostnamectl command – Display host name and Linux distro info on systemd based distros.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云满笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值