01 Linux 文件权限系统

文件系统

Linux的目录结构

目录

说明

bin

存放二进制可执行文件

sbin

存放二进制可执行文件,只有 root 才能访问

boot

存放用于系统引导时使用的各种文件

dev

用于存放设备文件

etc

存放系统配置文件

root

超级用户目录

home

存放所有用户文件的根目录

lib

存放跟文件系统中的程序运行所需要的共享库及内核模块

mnt

系统管理员安装临时文件系统的安装点

opt

额外安装的可选应用程序包所放置的位置

proc

虚拟文件系统,存放当前内存的映射

tmp

用于存放各种临时文件

usr

用于存放系统应用程序,比较重要的目录 /usr/local 本地管理员软件安装目录

var

用于存放运行时需要改变数据的文件

常见命令

命令基本格式

[[email protected] ~]$ 命令提示符:

  • chan 表示当前登录用户,root 是超级管理员

  • localhost 表示主机名

  • ~ 表示当前目录(家目录),其中超级管理员家目录为 /root,普通用户家目录为 /home/chan

  • $ 表示普通用户提示符,# 表示超级管理员提示符

Linux 命令格式:命令 [选项] [参数],需要注意:个别命令不遵守此规则,选项可以简化,如一些命令 -a 等同于 --all

登录

# ssh -i [pem.file] [user]@[ip]
ssh -i LightsailDefaultKey-ap-southeast-1.pem [email protected]

文件传输

scp -rp -i yourfile.pem ~/local_directory [email protected]_url:directory

系统管理命令

命令

说明

stat

显示指定文件的相关信息,比 ls 命令显示内容更多

who

显示在线登录用户

hostname

显示主机名称

uname

显示系统信息

top

显示当前系统中耗费资源最多的进程

ps

显示瞬间的进程状态

du

显示指定的文件(目录)已使用的磁盘空间的总量

df

显示文件系统磁盘空间的使用情况

free

显示当前内存和交换空间的使用情况

ifconfig

显示网络接口信息

ping

测试网络的连通性

netstat

显示网络状态信息

clear

清屏

kill

杀死一个进程

文件目录命令

命令

说明

语法

参数

参数说明

ls

显示文件和目录列表

ls

-l

列出文件的详细信息

-a

列出当前目录所有文件,包含隐藏文件

mkdir

创建目录

mkdir [-p] dirName

-p

嵌套生成目录

cd

切换目录

touch

生成一个空文件

echo

生成一个带内容文件

echo abcd > 1.txt,echo 1234 >> 1.txt

cat

显示文本文件内容

cat

cp

复制文件或目录

cp [options] source dest

rm

删除文件

rm [options] name

-f

强制删除文件或目录

-r

同时删除该目录下的所有文件

mv

移动文件或目录

mv [options] source dest

find

查找指定的文件

grep

在文本文件中查找指定的字符串

tree

以树状图列出目录的内容

pwd

显示当前工作目录

ln

建立软链接

more

分页显示文本文件内容

head

显示文件开头内容

tail

显示文件结尾内容

-f

跟踪输出

文件压缩命令

命令

语法

参数

参数说明

tar

tar [-cxzjvf] 压缩打包文档的名称 欲打包目录

-c

建立一个归档文件的参数指令

-x

解开一个归档文件的参数指令

-z

是否需要用 gzip 压缩

-j

是否需要用 bzip2 压缩

-v

压缩的过程中显示文件

-f

使用档名,在 f 之后要立即接档名

-tf

查看归档文件里面的文件

例子:

压缩文件夹:tar -czvf test.tar.gz test\ 解压文件夹:tar -xzvf test.tar.gz

文件搜索命令

  • locate:在后台数据库搜索文件

  • updatedb:更新后台数据库

  • whereis:搜索系统命令所在位置

  • which:搜索命令所在路径及别名

  • find:搜索文件或文件夹

用户和组

Linux 操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。

Root 账户

# 设置 Root 账户密码
sudo passwd root
# 切换到 Root
su

允许远程登录 Root

需要编辑 ssh 配置文件并重启服务:

vi /etc/ssh/sshd_config
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

最后重启服务:

service ssh restart

账户管理

# 增加用户
useradd 用户名
useradd -u (UID号)
useradd -p (口令)
useradd -g (分组)
useradd -s (SHELL)
useradd -d (用户目录)
# 修改用户
usermod -u (新UID)
usermod -d (用户目录)
usermod -g (组名)
usermod -s (SHELL)
usermod -p (新口令)
usermod -l (新登录名)
usermod -L (锁定用户账号密码)
usermod -U (解锁用户账号)
# 删除用户
userdel 用户名 (删除用户账号)
userdel -r 删除账号时同时删除目录
# 口令维护
passwd 用户账户名 (设置用户口令)
passwd -l 用户账户名 (锁定用户账户)
passwd -u 用户账户名 (解锁用户账户)
passwd -d 用户账户名 (删除账户口令)
gpasswd -a 用户账户名 组账户名 (将指定用户添加到指定组)
gpasswd -d 用户账户名 组账户名 (将用户从指定组中删除)
gpasswd -A 用户账户名 组账户名 (将用户指定为组的管理员)
# 组账户维护
groupadd 组账户名 (创建新组)
groupadd -g 指定组GID
groupmod -g 更改组的GID
groupmod -n 更改组账户名
groupdel 组账户名 (删除指定组账户)
# 用户和组状态
su 用户名(切换用户账户)
id 用户名(显示用户的UID,GID)
whoami (显示当前用户名称)
groups (显示用户所属组)

权限管理

查看文件和目录的权限

-rwxrwxrwx. 1 vagrant vagrant 1170 Sep 12 11:06 docker-compose.yml

说明:

  • -:文档类型,- 为普通文件

  • rwx:说明用户 vagrant 可读可写可运行

  • rwx:表示用户组 vagrant 可读可写可运行

  • rwx:其他用户可读可写可运行

更改权限

chown

change owner 的意思,主要作用就是改变文件或者目录所有者,所有者包含用户和用户组。

  • chown [-R] 用户名称 文件或者目录

  • chown [-R] 用户名称 用户组名称 文件或目录

-R:进行递归式的权限更改,将目录下的所有文件、子目录更新为指定用户组权限

chmod

改变访问权限。

  • chmod [who][+ | - | =] [mode] 文件名

参数说明:

  • who:表示操作对象可以是以下字母的一个或者组合

    • u:用户 user

    • g:用户组 group

    • o:表示其他用户

    • a:表示所有用户是系统默认的

  • 操作符号:需要进行的权限操作

    • +:表示添加某个权限

    • -:表示取消某个权限

    • =:赋予给定的权限,取消文档以前的所有权限

  • mode:表示可执行的权限,可以是 r、w、x

  • 文件名:文件名可以使空格分开的文件列表

示例:

chmod u=rwx,g+r,o+r test.txt

数字设定法

数字设定法中数字表示的含义:

  • 0 表示没有任何权限

  • 1 表示有可执行权限 = x

  • 2 表示有可写权限 = w

  • 4 表示有可读权限 = r

简单示例:

chmod 755 file_name

755 具体含义如下:

r w x

r – x

r - x

4 2 1

4 - 1

4 - 1

user

group

others