Linux与用户相关的目录结构
/:根目录
root:超级管理员(root)的家
home:其他用户(普通用户)的家
etc:配置文件
usr:存放共享文件的(软件的安装路径)
lib:依赖库
Linux用户组和用户的概念
基本概念
用户分为 超级管理员 和 普通用户
用户组 是用户的管理单元,一个用户至少属于一个用户组
依赖关系
- 超管 操作用户
超管可以创建、修改、删除 、修改密码 - 超管 操作用户组
超管可以增删改用户组、可以移动用户至不同用户组
用户组类似于标签,同一个用户可能有多个标签,也就是 一个用户可以属于多个用户组 - 用户操作
不能 增删改用户、用户组
超管 管理用户组
- 新增用户组
groupadd 组名
- 查看用户组
某个用户所属的组名 :groups 用户名
- 修改组名
groupmod -n 新组名 原组名
- 删除用户组
groupdel 组名
ps: 用户组下有用户,需要先删除完用户才能删除用户组
超管 管理用户
-
创建用户
useradd -m [-g 组名] 新用户名
参数解释:
1.-m
自动在/home目录了,建立用户家目录,家目录名字就是新用户名
2.-g
组名 指定新用户所在的组,如果不带"-g 组名"参数的话,会建立和新用户名同名的组 -
设置用户密码(修改)
passwd 新用户名
-
修改用户名
usermod -l 新名 旧名
-
删除用户
userdel -r 用户名
参数解释:
1.-r
recursion的缩写,递归。 将用户名的目录文件递归删除
1.1 如果使用 -r 参数,再增加同名的用户名会报Creating mailbox file: File exists
的错误
超管 管理用户和用户组
- 新增用户到用户组
useradd -m -g 组 新用户名
- 将用户移动到用户组
usermod -g 组 用户名
- 将用户复制到用户组
usermod -G 组 用户名
- 从组中删除用户
gpasswd -d 用户名 组
PS:能删除的用户只能是从其他组复制过来的用户,如果要删除组中的唯一用户,使用:userdel -r 用户名
超管 查看并修改 /etc/sudoers 文件的读写权限
1. ll -h 查看sudoers的权限
[root@james etc]# ll -h
-r–r-----. 1 root root 4.0K Mar 2 2012 sudoers
长度为10的表达式,第一位是文件类型标识位,后面9位是 3 * 3 的权限定义位
- 文件标识位
-
: 文件
d
: 目录 - 为什么是三个3
- 第一个3
当前用户的权限 - 第二个3
跟当前用户同组的用户的权限 - 第三个3
其它组的用户的权限
- 为什么每组有3位
- 第1位
r : 英语read的缩写 读权限 - 第2位
w : 英语write的缩写 写权限 - 第3位
x : 执行权限
-r–r-----. root用户具备可读可写可执行的权限,跟root同组的用户只可读,其他组的用户没有任何权限
2. -r–r----- 的二进制表示
第1位:-
文件
第2 - 4位 : r--
=100
= 1 * 22 + 0 * 11 + 0 * 10 = 4
第5 - 7位 第 8 - 10位 同理
3. 使用二进制参数修改sudoers的权限
[root@james etc]# chmod 740 sudoers
[root@james etc]# ll -h | grep sudoers
-rwxr-----. 1 root root 4.0K Mar 2 2012 sudoers
超管 使用/etc/sudoers 授予用户sudo权限
vim /etc/sudoers
加入
普通用户 使用超管命令 – 必须加上sudo前缀
[tom@james ~]$ usermod -G emp tom
-bash: /usr/sbin/usermod: Permission denied
[tom@james ~]$ sudo usermod -G emp tom
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for tom:
[tom@james ~]$