用户与组
用户
用户添加—useradd
参数 | 描述 |
---|---|
-d | 指定用户主目录,若目录不存在则使用-m 创建主目录 |
-g | 指定用户某个用户组 |
-G | 指定用户的附加组 |
-s | 指定用户的登录shell(查看系统登录shellchsh -l 或/etc/shells ) |
# 添加登录用户/bin/sh,主目录/home/tom,主组developer,又属于组root
useradd –d /home/tom -m tom -g developer -s /bin/sh -G root
用户管理
用户管理文件/etc/passwd
# 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
mysql:x:997:995::/home/mysql:/sbin/nologin
nginx:x:996:994::/home/nginx:/bin/bash
tom:x:1000:1010::/home/tom:/bin/bash
密码口令
添加修改密码passwd 选项 用户名
passwd tom
Old password:******
New password:*******
Re-enter new password:*******
用户权限sudo
修改文件/etc/sudoers
# 给文件添加写权限
chmod u+w /etc/sudoers
# root下添加一行
tom ALL=(ALL) ALL
# 关闭写权限
chmod u-w /etc/sudoers
组
添加组—groupadd
参数 | 描述 |
---|---|
-g | 指定该组的标识号 |
# 添加编号1010的developer组
groupadd -g 1010 developer
组管理
组信息/etc/group
mysql:x:995:
nginx:x:994:
developer:x:1010:
文件压缩
1. tar 打包工具—(tar 参数 压缩名 压缩文件)
- 添加
-c
参数创建压缩包,-f
参数指定文件名
# 打包 test 目录为 test.tar
tar -cf test.tar test/
- 创建
*.tar.gz
,添加-z
参数,使用gzip工具打包
# 打包 test 目录为 test.tar.gz
tar -czf test.tar test/
- 解压
tar -zxvf test.tar.gz
2. unzip 解压缩
# 将 test.zip 解压到当前目录
unzip test.zip
磁盘与目录
1. du
# 查看所有文件大小(以KB显示)
du -h
# 查看当前目录下所有文件的大小(以M显示)
du -sh *
12K ./html
72K ./conf
8.5M ./sbin
8.6M ./
2. df
参数 | 描述 |
---|---|
-h | 常用的容易阅读方式显示 |
-a | 列出所有文件系统 |
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 6.0G 32G 16% /
devtmpfs 911M 0 911M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 380K 920M 1% /run
3. ls
# 查看指定目录
ls /path/to
# -a是显示隐藏文件
ls -al
# -l是以更详细的列表形式显示,与`ll`作用相同
ls -l
4. cd
# 切换目录
cd /path/to
# 切换到用户主目录
cd ~
# 回退到上次所在的目录
cd -
# 什么路径都不带,则回到用户的主目录
cd
5. find
find PATH
option
action
参考:http://man.linuxde.net/find
# -name 查找指定名称的文件 -iname 忽略大小写
find /home/tom -name "*.sh" -ls //查找tom下.sh结尾的文件,以 ls 命令列出
# -type 文件类型 一般文件(f),目录 (d)
find /home/ -name "foo*" -type d // 查找home下,名称foo开头的目录
# -user 用户
find /home/ -user tom // 查询home下属于tom用户的文件
# -perm 权限
find . -type f -perm 777 // 当前目录权限为777的文件
# -exec 与其他命令结合
find /home/ -name "*.sh" -exec cp {} shell \; //查找的.sh文件复制到shell文件夹中
find /home/ -name "*.sh" -exec rm {} \; //查找的.sh文件并删除
5. cat
# 显示aop.text
cat apo.text
5. tail
# -f 实时侦测文件的后续写入内容,查看日志的写入,-n 显示几行
tail -50f err.log // 实时查看err.log,最初显示50行
权限管理
u
文件的拥有者,g
文件所属组,o
其他用户,a
表示三者
+
增加权限,-
取消权限,=
唯一设定权限|
普通权限:
r
—4
—读
w
—2
—写
x
—1
—执行
特殊权限:
权限 | 表示 | 描述 |
---|---|---|
SUID=4 | s出现在文件所有人的x 权限上 | 1)SUID只能用于二进制可执行文件,对目录无效 2)执行者若具有该文件的x权限,则将具有文件所有人的权限 3)权限只在文件执行时有效,执行完毕不再拥有所有人权限 |
SGID=2 | s出现在文件所属群组的x 权限上 | 1)使用者若有此目录的x,w权限,则可进入和修改此目录 2)使用者在此目录下的群组将变成该目录的群组,新建的文件,群组是此目录的群组 SGID对于文件来说: 1)SGID只对二进制可执行文件有效 2)执行者若具有该文件的x权限,则将具有文件所属群组的权限 3)权限只在文件执行时有效,执行完毕不再拥有所属群组权限 |
SBIT=1 | t出现在文件其他用户的x 权限上 | 1)和SUID,SGID不同的是,只能用于目录 2)使用者在该目录下,仅目录所有人与root才有权力删除新建的目录或文件 |
1. chmod
# 可使此程序具有root的权限
chmod 4755 filename // 特殊权限设置
# 使程序具有全部权限
chmod 777 file
# 使用户与组有可写权限
chmod ug+w file.txt
# 递归目录全部可执行
chmod -R a+x /file/