文章

Ubuntu用户权限配置

Ubuntu用户权限配置

在Linux系统中,root的权限是最高的,所有一般都会禁止root用户直接登录ssh,使用普通用户登录有特殊需求的话,可以用su切换到root用户或使用sudo权限。

新建普通用户并设置密码

1
2
# 按照提示输入密码,其他非必填可跳过
adduser newuser 

为普通用户添加超级用户权限

方法1: 添加新用户到sudo用户组

1
2
3
4
5
6
7
# 显示newuser所在的用户组
groups newuser

# 添加到sudo组
# -a 添加用户到指定的组
# -G sudo 指定了添加到的组
usermod -aG sudo newuser

方法2:在/etc/sudoers中指定用户的权限(未验证)

1
2
3
4
5
6
7
8
# 在sudo权限下执行
visudo
# 或
sudo vim /etc/sudoers

# 在文件中添加
newuser ALL=(ALL:ALL) ALL
# Ctrl-X,接着y退出

删除用户命令

1
2
3
4
deluser newuser

# 删除用户的同时删除/home/newusr
deluser --remove-home newuser

禁止root用户ssh登录

1
2
3
4
5
6
7
8
# 打开配置文件
vim /etc/ssh/sshd_config

# 找到PermitRootLogin参数,将yes改成no
PermitRootLogin no

# 保存文件并退出,重启sshd服务
systemctl restart sshd

普通用户免密切换到root用户(未验证)

/etc/sudoers有这么一行

%wheel ALL=(ALL) NOPASSWD: ALL

表示wheel组中的所有用户都可以免密码切换用户的权限,因此可以通过三种方法使普通用户拥有免密切换用户的权限

  1. 修改普通用户的组为wheel
    1
    
    usermod -g wheel username
    
  2. 修改/etc/sudoers添加用户
    1
    2
    
    # 在/etc/sudoers中添加
    username ALL=(ALL) NOPASSWD: ALL
    
  3. 修改/etc/sudoers中的wheel组
    1
    2
    
    # 在/etc/sudoers中修改 %wheel ALL=(ALL) NOPASSWD: ALL 为
    username ALL=(ALL) NOPASSWD: ALL
    

    遇到sudo: /etc/sudo.conf is group writable的问题,去掉/etc/sudo.conf文件的写入权限即可,即运行命令chmod 440 /etc/sudo.conf

本文由作者按照 CC BY 4.0 进行授权