1.文件权限
linux文件的三种身份:
- 拥有者
- 群主
- 其他人
文件三种权限:
r:读取权限,数字代号为”4”。
w:写入权限,数字代号为”2”。
x:执行或切换权限,数字代号为”1”
0 000 —: 无权限
1 001 –x: 执行
2 010 -w-: 写
3 011 -wx: 写和执行
4 100 r–: 只读
5 101 r-x: 读和执行
6 110 rw-: 读写
7 111 rwx: 读写执行
权限对文件的重要性:
- r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
[qkong@localhost ~]$ cat demo.sh
demo
## 删除demo.sh的r权限
[qkong@localhost ~]$ chmod 300 demo.sh
[qkong@localhost ~]$ ls -l demo.sh
--wx------. 1 qkong qkong 5 Feb 16 06:05 demo.sh
## 没有权限查看文件内容
[qkong@localhost ~]$ cat demo.sh
cat: demo.sh: Permission denied
- w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
[qkong@localhost ~]$ echo "append" >> demo.sh
## 删除demo.sh的w权限
[qkong@localhost ~]$ chmod 500 demo.sh
[qkong@localhost ~]$ ls -l demo.sh
-r-x------. 1 qkong qkong 12 Feb 16 06:07 demo.sh
[qkong@localhost ~]$ echo "append" >>demo.sh
-bash: demo.sh: Permission denied
## 可以删除文件
[qkong@localhost ~]$ rm demo.sh
[qkong@localhost ~]$ ls -l demo.sh
ls: cannot access demo.sh: No such file or directory
- x (execute):该文件具有可以被系统执行的权限。
[qkong@localhost ~]$ echo "echo demo" > demo.sh
[qkong@localhost ~]$ chmod 500 demo.sh
[qkong@localhost ~]$ ls -l demo.sh
-r-x------. 1 qkong qkong 10 Feb 16 06:12 demo.sh
[qkong@localhost ~]$ ./demo.sh
demo
[qkong@localhost ~]$ chmod 600 demo.sh
[qkong@localhost ~]$ ls -l demo.sh
-rw-------. 1 qkong qkong 10 Feb 16 06:09 demo.sh
[qkong@localhost ~]$ ./demo.sh
-bash: ./demo.sh: Permission denied
权限对目录的重要性:
- r (read contents in directory):读取目录列表 查看目录下的文件名数据 可以使用ls将目录内容列表显示处理
[qkong@localhost ~]$ chmod 400 Desktop/
[qkong@localhost ~]$ ls -ld Desktop/
dr--------. 2 qkong qkong 4096 Feb 16 06:22 Desktop/
[qkong@localhost ~]$ ls Desktop/
ls: cannot access Desktop/demo.sh: Permission denied
ls: cannot access Desktop/demo: Permission denied
ls: cannot access Desktop/demo1: Permission denied
demo demo1 demo.sh
## 无法查看文件的元数据
[qkong@localhost ~]$ ls -l Desktop/
ls: cannot access Desktop/demo.sh: Permission denied
ls: cannot access Desktop/demo: Permission denied
ls: cannot access Desktop/demo1: Permission denied
total 0
-????????? ? ? ? ? ? demo
-????????? ? ? ? ? ? demo1
-????????? ? ? ? ? ? demo.sh
- w (modify contents of directory):
- 建立新的文件与目录;
- 删除已经存在的文件与目录(不论该文件的权限为何!)
- 将已存在的文件或目录进行更名;
- 搬移该目录内的文件、目录位置。
[qkong@localhost ~]$ chmod 500 Desktop/
[qkong@localhost ~]$ ls -ld Desktop/
dr-x------. 2 qkong qkong 4096 Feb 16 06:22 Desktop/
## 没有w权限无法创建新文件
[qkong@localhost ~]$ touch Desktop/lalala
touch: cannot touch `Desktop/lalala': Permission denied
## 加入w权限
[qkong@localhost ~]$ chmod 700 Desktop/
[qkong@localhost ~]$ ls -ld Desktop/
drwx------. 2 qkong qkong 4096 Feb 16 06:28 Desktop/
## 创建新文件成功
[qkong@localhost ~]$ touch Desktop/lalala
- x (access directory):
将当前目录变为工作目录的权限 cd进入该目录
ls -l 查看内部文件的详细信息
[qkong@localhost ~]$ chmod 600 Desktop/
## 此时Desktop目录没有x权限
[qkong@localhost ~]$ ls -ld Desktop/
drw-------. 2 qkong qkong 4096 Feb 16 06:28 Desktop/
## 只能查看文件列表 不能查看具体文件元数据
[qkong@localhost ~]$ ls -l Desktop/
ls: cannot access Desktop/demo.sh: Permission denied
ls: cannot access Desktop/lalala: Permission denied
ls: cannot access Desktop/demo: Permission denied
ls: cannot access Desktop/demo1: Permission denied
total 0
-????????? ? ? ? ? ? demo
-????????? ? ? ? ? ? demo1
-????????? ? ? ? ? ? demo.sh
-????????? ? ? ? ? ? lalala
## 加入Desktop的x权限
[qkong@localhost ~]$ chmod 700 Desktop/
[qkong@localhost ~]$ ls -ld Desktop/
drwx------. 2 qkong qkong 4096 Feb 16 06:28 Desktop/
[qkong@localhost ~]$ ls -la Desktop/
total 12
drwx------. 2 qkong qkong 4096 Feb 16 06:28 .
drwx------. 26 qkong qkong 4096 Feb 16 06:22 ..
-rw-r--r--. 1 root root 0 Feb 14 16:07 demo
-rw-r--r--. 1 root root 0 Feb 14 15:33 demo1
-r-x------. 1 qkong qkong 10 Feb 16 06:12 demo.sh
-rw-rw-r--. 1 qkong qkong 0 Feb 16 06:28 lalala
用户: UID, /etc/passwd
组: GID, /etc/group
影子口令
用户: /etc/shadow
组: /etc/gshadow
用户类别:
- 管理员: id为0
- 普通用户:id范围:1-65535
- 系统用户: 1-499
- 一般用户: 500-60000
用户组类别:
- 管理员组
- 普通租:
- 系统组:
- 一般组:
用户组类别
- 私有组:
创建用户时没有指定用户所属的组,系统会自动为其创建一个与用户名同名的组 - 基本组: 用户的默认组
- 附加组,额外组: 默认组意外的其他组
/etc/passwd文件格式: man 5 passwd
qkong:x:500:500:qkong:/home/qkong:/bin/bash
account: 登录名 不应该包含大写字母
passwd: 加密密码 通常是*或者x 具体密码在/etc/shadow中
UID: 用户id
GID: 用户组id
GECOS: General Electric Comprehensive Operating System 用户的详细信息(如姓名,年龄,电话等)
directory: 用户家目录 $HOME
shell: 登录默认使用的shell
/etc/shadow文件格式: man 5 shadow
login name: 登录名
encrypted password: 加密密码
date of last password change: 最近一次密码修改时间
minimum password age: 最短密码期限(按天计算,0 = 无最短期限)
maximum password age: 最长密码期限(按天计算)
password warning period: 密码警告期限(按天计算,0 = 未指定警告)
password inactivity period: 密码非活动期限(按天计算)登录后需要修改面
account expiration date: 账号到期时间(从1970-1-1开始)
reserved field: 保留域
/etc/group文件格式:
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
group_name: 组名
password: 密码
GID: 组id
user_list: 以此组为附加组的用户列表
2.常用命令汇总
用户管理
useradd, userdel, usermod, passwd, chsh, chfn, finger, id, change
组管理
groupadd, groupdel, groupmod, gpasswd
权限管理
chown, chgrp, chmod, umask
3.系统中可用的shell列表
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
4.useradd 添加用户
useradd USERNAME
选项
-u UID
: 指定UID(其他用户尚未使用)-g GID
: 基本组-G GID,...
: 附加组- `-c “COMMENT”: 指定注释信息
-d /path/to/somedirectory
: 家目录-s
: 指定shell的路径-m --create-home
:-r
: 添加系统用户 系统用户默认没有家目录 不能登录系统
/etc/default/useradd添加用户的规则
[root@localhost user2]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
其中SKEL=/etc/skel规定了创建家目录时初始的文件
[root@localhost user2]# ls -la /home/user2
total 28
drwx------. 4 user2 mygroup 4096 Feb 16 18:05 .
drwxr-xr-x. 9 root root 4096 Feb 16 18:27 ..
-rw-r--r--. 1 user2 mygroup 18 May 11 2016 .bash_logout
-rw-r--r--. 1 user2 mygroup 176 May 11 2016 .bash_profile
-rw-r--r--. 1 user2 mygroup 124 May 11 2016 .bashrc
drwxr-xr-x. 2 user2 mygroup 4096 Nov 12 2010 .gnome2
drwxr-xr-x. 4 user2 mygroup 4096 May 22 2016 .mozilla
[root@localhost user2]# ls -la /etc/skel/
total 36
drwxr-xr-x. 4 root root 4096 May 22 2016 .
drwxr-xr-x. 130 root root 12288 Feb 16 18:27 ..
-rw-r--r--. 1 root root 18 May 11 2016 .bash_logout
-rw-r--r--. 1 root root 176 May 11 2016 .bash_profile
-rw-r--r--. 1 root root 124 May 11 2016 .bashrc
drwxr-xr-x. 2 root root 4096 Nov 12 2010 .gnome2
drwxr-xr-x. 4 root root 4096 May 22 2016 .mozilla
-M --no-create-home
: 不创建家目录
例子
新增tom用户 默认/etc/shadow中无密码用!!表示
[root@localhost ~]# useradd tom
[root@localhost ~]# tail -1 /etc/passwd
tom:x:502:502::/home/tom:/bin/bash
[root@localhost ~]# tail -1 /etc/shadow
tom:!!:17213:0:99999:7:::
[root@localhost ~]# tail -1 /etc/group
tom:x:502:
新建一个组:
[root@localhost tom]# groupadd mygroup
[root@localhost tom]# tail -1 /etc/group
mygroup:x:503:
新建一个以mygroup为基本组的用户user2:
# 组不存在 报错
[root@localhost tom]# useradd -g lalala user2
useradd: group 'lalala' does not exist
[root@localhost tom]# useradd -g mygroup user2
# 组id和mygroupid相同
[root@localhost tom]# tail -1 /etc/passwd
user2:x:503:503::/home/user2:/bin/bash
新建一个以mygroup为附加组的用户user3
[root@localhost tom]# useradd -G mygroup user3
# user3创建后 系统自动创建user3同名的私有组 并将user3加入到附加组mygroup中
[root@localhost tom]# tail -1 /etc/passwd
user3:x:504:504::/home/user3:/bin/bash
[root@localhost tom]# tail /etc/group
wireshark:x:491:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
slocate:x:21:
tcpdump:x:72:
qkong:x:500:
tom:x:502:
mygroup:x:503:user3
user3:x:504:
新增一个指定家目录地址和说明的用户user4
[root@localhost tom]# useradd -c "this user is kairis" -d /home/kairis user4
[root@localhost tom]# tail -1 /etc/passwd
user4:x:505:505:this user is kairis:/home/kairis:/bin/bash
[root@localhost tom]# ls -ld /home/kairis
drwx------. 4 user4 user4 4096 Feb 16 18:22 /home/kairis
创建一个不能登录的用户user5:
[root@localhost tom]# useradd -s /sbin/nologin user5
[root@localhost tom]# su - user5
This account is currently not available.
创建一个指定shell的用户user6:
[root@localhost tom]# useradd -s /bin/tcsh user6
[root@localhost tom]# tail -1 /etc/passwd
user6:x:507:507::/home/user6:/bin/tcsh
创建一个用户user7,不指定其家目录
[root@localhost user2]# useradd -M user7
## 用户家目录不存在
[root@localhost user2]# su - user7
su: warning: cannot change directory to /home/user7: No such file or directory
5.userdel 删除用户
userdel [option] USERNAME
不指定任何参数删除用户,该用户家目录不会被删除
选项
-r
: 同时删除用户的家目录
例子
[root@localhost home]# userdel user1
# user1的家目录还在
[root@localhost home]# ls
kairis qkong tom user1 user2 user3 user5 user6
[root@localhost home]# userdel -r user2
# user2家目录已经同时被删除
[root@localhost home]# ls /home
kairis qkong tom user1 user3 user5 user6
6.id 用户帐号信息
id [option] USERNAME
不指定USERNAME查看当前用户的帐号信息
选项
-u
: 用户id-g
: 基本组id-G
: 所有组(基本组和附加组)id-n --name
: 显示选项名字
例子
[root@localhost ~]# tail /etc/passwd
...
user3:x:504:504::/home/user3:/bin/bash
...
[root@localhost ~]# id -u user3
504
[root@localhost ~]# id -g user3
504
[root@localhost ~]# id -G user3
504 503
[root@localhost ~]# id -un user3
user3
[root@localhost ~]# id -gn user3
user3
[root@localhost ~]# id -Gn user3
user3 mygroup
7.finger 查看用户帐号信息
finger USERNAME
例子
[root@localhost ~]# finger user3
Login: user3 Name:
Directory: /home/user3 Shell: /bin/bash
Never logged in.
No mail.
No Plan.