Ubuntu用户用户组及权限问题

本文主要包含两部分内容: 
1. 新建一个用户 
2. 允许该用户以管理员身份执行命令(在使用服务器的时候,不建议给予普通用户管理员权限) 
注:本文基于Ubuntu系统的主机名为HPZ640-1,用户名为mqk,进行创建与删除的新用户名为tt

1. 创建用户

创建用户有两条命令:adduer和useradd,对应着两条删除用户的命令:deluser和userdel。 
这两种命令之间的区别: 
adduser:会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。 
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。

1.1 adduser

输入命令:mqk@HPZ640-1:~$ sudo adduser tt 
输出显示:

[sudo] password for mqk: 
正在添加用户"tt"...
正在添加新组"tt" (1006)...
正在添加新用户"tt" (1006) 到组"tt"...
创建主目录"/home/tt"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
正在改变 tt 的用户信息
请输入新值,或直接敲回车键以使用默认值
    全名 []: 
    房间号码 []: 
    工作电话 []: 
    家庭电话 []: 
    其它 []: 
这些信息是否正确? [Y/n] y

这样在创建用户名时,就创建了用户的主目录以及密码。

默认情况下: 
adduser在创建用户时会主动调用 /etc/adduser.conf; 
在创建用户主目录时默认在/home下,而且创建为 /home/用户名

如果主目录已经存在,就不再创建,但是此主目录虽然作为新用户的主目录,而且默认登录时会进入这个目录下,但是这个目录并不是属于新用户,当使用userdel删除新用户时,并不会删除这个主目录,因为这个主目录在创建前已经存在且并不属于这个用户。

为用户指定shell版本为:/bin/bash 
因此常用参数选项为:

  –home: 指定创建主目录的路径,默认是在/home目录下创建用户名同名的目录,这里可以指定;如果主目录同名目录存在,则不再创建,仅在登录时进入主目录。
  –quiet: 即只打印警告和错误信息,忽略其他信息。
  –debug: 定位错误信息。
  –conf: 在创建用户时使用指定的configuration文件。
  –force-badname: 默认在创建用户时会进行/etc/adduser.conf中的正则表达式检查用户名是否合法,如果想使用弱检查,则使用这个选项,如果不想检查,可以将/etc/adduser.conf中相关选项屏蔽。如: 

1.2 useradd

注意: 在使用useradd命令创建新用户时,不会为用户创建主目录,不会为用户指定shell版本,不会为用户创建密码。

(1)不使用任何参数选项创建用户:sudo useradd tt

为用户指定登录密码:sudo passwd tt 
输出显示:
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码

为用户指定命令解释程序(通常为/bin/bash):sudo usermod -s /bin/bash tt

为用户指定用户主目录:sudo usermod -d /home/tt tt

(2)为用户指定参数的useradd命令:

常用命令行选项:

    -d: 指定用户的主目录
    -m: 如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。

    -s: 指定用户登录时的shell版本

    -M: 不创建主目录

例如:sudo useradd -d "/home/tt" -m -s "/bin/bash" tt 

解释: -d “/home/tt” :就是指定/home/tt为主目录 
    -m 就是如果/home/tt不存在就强制创建 
    -s 就是指定shell版本

  修改用户密码:`sudo passwd tt` 
  输出显示:

  输入新的 UNIX 密码: 
   重新输入新的 UNIX 密码: 
   passwd:已成功更新密码

2. 删除用户

2.1 deluser

只删除用户:sudo deluser tt 
输出显示:
正在删除用户 'tt'...
警告:组"tt"没有其他成员了。
完成。
连同用户的主目录和邮箱一起删除:sudo deluser --remove-home tt 
输出显示:
正在寻找要备份或删除的文件...
正在删除文件...
正在删除用户 'tt'...
警告:组"tt"没有其他成员了。
完成。
连同用户拥有的所有文件删除:sudo deluser --remove-all-files tt

2.2 userdel

只删除用户:sudo userdel tt
连同用户主目录一起删除:sudo derlser -r tt 

如果创建时主目录已经存在,即主目录不属于当前要删除的用户,则无法删除主目录。

3. 相关文件

/etc/passwd - 使 用 者 帐 号 资 讯,可以查看用户信息
/etc/shadow - 使 用 者 帐 号 资 讯 加 密
/etc/group - 群 组 资 讯
/etc/default/useradd - 定 义 资 讯
/etc/login.defs - 系 统 广 义 设 定
/etc/skel - 内 含 定 义 档 的 目 录

可以这样打开来查看:cat /etc/passwd

4.为用户组开放某个文件夹功能

linux下的文件权限

对于linux下所有的文件,都有对应的拥有者权限,组权限,其他用户权限 
对应的读r 写w 可执行x 
对应于数字4  2  1

使用whoami 查看当前登陆用户所属的组

在终端输入whoami

查看当前登陆用户组下的所有成员

只需在终端输入groups即可

查看所有的组以及对应的组id

cat /etc/groups

查看用户所属的组(可以不是当前登陆用户)

在终端输入groups 用户名

修改文件的所属组chgrp

单修改一个文件的所属组

比如现在有个文件a.txt,你想将a.txt文件归属到root组chgrp root a.txt

递归的修改目录下所有文件文件夹的所属组

比如现在有个目录 test,test目录下有很多文件和文件夹,将其归属到root组
chgrp -R root ./test
-R参数的作用是递归的将目录下的所有文件归属到root组

修改文件的拥有者chown

要注意chown 不仅可以修改拥有者,也可以在修改拥有者的同时,修改所属的组
语法:
修改某一文件所属的用户
chown 用户名 文件
修改某一目录下所有文件所属的用户
chown -R 用户名  目录
修改用户的同时修改组
chown 用户名:组名 文件
chown -R 用户名:组名 目录

修改文件对应的拥有者,组,其他用户权限chmod(权限请参考https://blog.csdn.net/u013066730/article/details/117654059

比如有一个文件test.txt
修改所属者权限可读可写可执行,所属组可读可写,其他用户仅可读
chmod 764 test.txt
如果想要递归设置test目录下的所有文件
chmod -R 764 ./tes

5.添加用户到指定的用户组

sudo gpasswd -a ftpadmin ftpgroup # Adding user ftpadmin to group ftpgroup

6.删除用户组

groupdel ftpgroup

参考

https://blog.csdn.net/taolusi/article/details/81304057

https://blog.csdn.net/weixin_40035337/article/details/107348102

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值