目录
1——添加用户(useradd)
2——删除用户:userdel
3——修改用户:usermod
4——记住用户操作:history
5——查看用户信息:id
6——用户切换:su
问题1:遇到当前的用户不能使用sudo或者不能切换到root权限怎么解决?
1——添加用户(useradd)
语法:
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>]
[-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
-u | 指定用户ID;0~499默认是保留给系统用户账号使用的,所以该值必须大于499 |
-s | 指定用户登入后所使用的shell |
-r | 建立系统帐号 |
-n | 取消建立以用户名称为名的群组 |
-M | 不要自动建立用户的登入目录 |
-m | 制定用户的登入目录 |
-G | 指定用户所属的附加群组 |
-g | 指定用户所属的群组 |
-f | 指定在密码过期后多少天即关闭该帐号 |
-e | 指定帐号的有效期限 |
-d | 指定用户登入时的起始目录,替换系统默认值/home/<用户名> |
-c | 加上备注文字;备注文字会保存在passwd的备注栏位中 |
-D | 变更预设值 |
示例:建立一个新用户xy,并设置其主目录为/testuser1,属组为users
sudo useradd -d /testuser1 -g users -m xy
#执行完后记得设置密码:passwd 用户名 ,才能登录
sudo passwd users
在登录界面就可以看到建立成功的用户,还可以看到当前的主目录正是我们刚才设置的那个
2——删除用户:userdel
语法:
userdel [参数] 用户名
不加参数,只删除用户账号,用户下相关的目录等都没有删除
-f | 强制删除用户,即使用户当前已登录 |
-r | 删除用户的同时,删除与用户相关的所有文件 |
以上参数,加的时候要谨慎考虑。
3——修改用户:usermod
用于修改已有的用户账号的一些信息
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>]
[-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][原用户帐号]
-c | 修改用户帐号的备注文字 |
-d | 修改用户登入时的目录 |
-e | 修改帐号的有效期限 |
-f | 修改在密码过期后多少天即关闭该帐号 |
-g | 修改用户所属的群组 |
-G | 修改用户所属的附加群组 |
-l | 修改用户帐号名称 |
-L | 锁定用户密码,使密码无效 |
-s | 修改用户登入后所使用的shell |
-u | 修改用户ID |
-U | 解除密码锁定 |
4——记住用户操作:history
history命令会列出所有使用过的命令并加以编号,默认可以使用存储最近的1000条命令记录,这些信息被存储在用户主目录的./bash_history中
可以指定让history列出最近几次输入的命令:
5——查看用户信息:id
如果id后面不跟用户名,则查看的是当前登录用户的信息
6——用户切换:su
su+用户名就可以切换到对应的用户,通过exit命令返回之前的账号,若su后面没有跟用户名,则会将用户提升至root权限
问题1:遇到当前的用户不能使用sudo或者不能切换到root权限怎么解决?
一般会提示错误该用户没有在sudoers里面。
1、sudo程序接受命令行作为参数,并以root身份执行它。在执行命令前,sudo会要求用户输入自己的密码,才可以使用。
2、管理员可以通过配置/etc/sudoers指定用户可以执行的特权命令。下面是ubuntu中sudoers文件的默认配置
#users privilege specification
root ALL=(ALL) ALL
#members of the admin group may gain root privileges
#管理员组的成员可以获得超级用户权限
%admin ALL=(ALL) ALL
一般来说sudoers中的每一行权限说明包含以下内容:
1、该权限适用的用户
2、这一行配置在哪些主机上适用
3、该命令应该以哪个用户执行
4、该用户可以运行哪些命令
以第一句话来解释:指定root用户可以使用sudo在任何机器(第一个all)上以任何用户身份(第二个all)执行任何命令(第三个all)。
第二句话中“%admin”=所有属于admin组的用户,在Ubuntu中,安装创建的那个用户会自动被加入admin组。
所以解决问题1的方法,要么将这个用户加入sudo组( 可以使用usermod来修改所属的组a和G结合使用),或者就是配置sudoers文件,最后重启生效。
接下来我们看个例子:
Host_Alias STATION = WEB1,WEB2 #关键字Host_Alias定义了主机名
Cmnd_Alias DUMP = /sbin/dump /sbin/restore关键字Cmnd_Alias定义了命令组
#若上面要加的内容过多,可以通过“\”来达到转行
xy STATION = ALL
#xy用户可以在STATION组的计算机上执行任何命令,由于没有指定用户,因此xy将以root权限执行这些命令
mike ALL = (ALL) ALL
#mike可以在所有的计算机上用sudo以任何身份执行任何命令
jon ALL = (operator) DUMP
#jon可以在所有机器上以operatot的身份执行DUMP里的命令
注:sudoers中的命令应该使用绝对路径来指定,防止别人用root权限执行到自己的脚本。
修改sudoers文件应该使用visudo命令。
补充:
Host_Alias | 定义主机名别名 |
User_Alias | 用户别名,别名成员能够是用户,用户组(前面要加%号) |
Cmnd_Alias | 定义命令别名 |
Runas_Alias | 用来定义runas别名,这个别名指定的是“目的用户”,即sudo 允许转换至的用户 |
注:在每一种Alias后面定义的别名 NAME 可以是包含大写字母、下划线连同数字,但必须以一个大写字母开头