用户管理与权限分配
1 用户管理
1.1 创建开关机用户 1.1.1 第一步:先创建一个普通用户
#useradd username -g groupname
sudo通过维护一个特权到用户名映射的数据库将特权分配给不同的用户,这些特权可由数据库中所列的一些不同的命令来识别。 sudo工具由文件/etc/sudoers进行配置,该文件包含所有可以访问sudo工具的用户列表并定义了他们的特权。 #visudo代码:
testuser 主机名=NOPASSWD:/usr/sbin/reboot,/usr/sbin/shutdown //表示允许用户testuser不用密码执行关机操作 用法执行命令前加上前缀sudo,要以root用户的身份执行,如: sudo /usr/sbin/shutdown //命令要写绝对路径 对一组用户进行定义,可以在组名前加上%,对其进行设置,如代码: %cuug ALL=(ALL) ALL
1.1.2 第二步:赋予其开关机的权限 1.1.3 定义/etc/sudoers文件
User_Alias, Host_Alias, Cmnd_Alias项,在其后面加入相应的名称,也以逗号分隔开就可以了,举例如下: 代码:
Host_Alias SERVER=no1
User_Alias ADMINS=testuser,gem
Cmnd_Alias SHUTDOWN=/usr/sbin/halt,/usr/sbin/shutdown,/usr/sbin/reboot ADMINS SERVER=SHUTDOWN
1.1.4 sudo命令的用法
$ sudo -l 显示代码:
User testuser may run the following commands on this host: (root) /usr/sbin/reboot
1.2 受限shell的用户 1.2.1 禁止目录的切换
#adduser nixe0n #passwd nixe0n
#ln -s /bin/bash /bin/rbash #echo \ #chsh -s /bin/rbash nixe0n #cd ~nixe0n #su nixe0n 然后,执行:
$cd / 就会出现以下错误:rbash: cd: restricted
1.2.2 启动受限shell禁止的操作
1 使用cd命令切换目录;
2 设置或者取消SHELL、PATH、ENV或者BASH_ENV环境变量; 3 以绝对路径运行命令;
4 使用绝对路径指定的文件名作为内置命令.的参数; 5 使用绝对路径指定的文件名作为内置命令hash的参数; 6 在启动时,从shell环境导入函数的定义; 7 在启动时,解析SHELLOPTS的值;
8 使用>、>|、<>、>&、&>和>>等重定向操作重定向输出; 9 使用exec命令使其它的命令代替当前shell; 10 使用-f和-d选项打开/关闭内置命令; 11 对内置命令使用-p选项;
2
2 用户权限的分配和管理
2.1 创建组
groupadd groupname
tail -1 /etc/group //显示组信息与所属用户 groups username //列出当前用户所属的的组
2.2 创建用户:
useradd user_name //(以 root 用户运行)创建一个新帐户(你必须是 root 用户) passwd user_name
ls –l /home/user_name 显示用户主目录
useradd peter –g groupname //(以 root 用户运行)创建一个用户,以组 ID(GID)来创建用户。
2.3 删除帐户:
userdel user_name //删除一个帐户(你必须是 root 用户)。
2.4 删除组
groupdel groupname //先删除用户在来删除组。
2.5 修改用户账户与信息 2.5.1 修改的用户名
# usermod -l newuser1 newuser
2.5.2 将用户添加到组中
# usermod -g groupname user2
2.5.3 锁定用户账号
# usermod -L newuser1或者#passwd -l username 锁定用户密码,使密码无效
锁定用户密码,使密码无效
3
2.5.4 解除用户锁定
# usermod -U newuser1
2.5.5 修改用户信息
# chfn 用户名
2.5.6 用finger显示用户信息。
# finger 用户名
2.5.7 修改组名
# groupmod -n groupname newgroup //groupmod命令更改组名 'groupname' 为 'newgroup'。2.5.8 更改用户口令有效期
#change –M 100 login_name
2.6 实例:
批量添加用户的脚本
1创建用户列表文件 #cat users.list user1 123456 user2 123456 user3 123456 user4 123456 user5 123456 user6 123456 user7 123456
4
2 创建添加用户的脚本 #cat user-add.sh #!/bin/sh
for i in `awk '{print $1}' users.list` do useradd $i
grep \ done
3 文件权限的管理
3.1.1 文件的属性
-rw-r--r-- 1 root root 50K Oct 19 23:38 /root/install.log
文件类型:文件标志的第一个字符是 -”,表示这是一个普通文件,如果是d,表示为文件目录。
文件权限:文件权限是 rw-r--r-- ,表示文件属主可读、可写,文件所归属的用户组可读,其它用户可读; 硬链接个数: /root/install.log 这个文件没有硬链接;因为数值是 1,就是他本身; 文件属主:也就是这个文件归哪于哪个用户 ,它归于 root,也就是第一 root; 文件属组:也就是说,对于这个文件,它归属于哪个用户组,在这里是 root 用户组; 文件大小:文件大小是 50K;
访问可修改时间:Oct 19 23:38,这里的时间是最后访问的时间,最后访问和文件被修改或创建的时间,有时并不是一致的; 文件名或目录名:就是文件的名称了。
3.1.2 文件的权限
Linux 文件的权限标志位共九个,分为 3 组,分别代表文件拥有者的权限,文件所属用户组的权限和其它用户的权限,如下:
d rwx rwx rw- d:目录 r:可读m w:可写 x: 可执行 -无权限
5