计算资源:
权限:
定义资源或服务的访问能力叫做权限。
用户:
获取资源或服务的凭证(标识符)。
用户组:
逻辑容器,用来存放用户,可以关联权限。组织权限的容器,可以指派权限给容器内的用户。
文件的访问权限结构:
u:属主
g:属组
o:其他用户
权限模型:
r(read) w(write) x(eXacutable)
组合如下:
字母 2进制 8进制
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
文件:
r:可读,可以使用类似cat等命令查看文件内容。
w:可写,可以编辑或删除此文件。
x:可执行,可以在命令提示符下当做命令提交给内和运行。
目录:
r:可以对此目录执行ls以列出内部的所有文件。
w:可以在此目录中创建文件。
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。
文件和文件夹默认权限:
默认权限是配合umask计算出来的。
文件默认是没有x权限的,若通过umask计算后有执行权限,则权限自动+1。
例如:
#umask 023
#mkdir test
#touch a.txt
#ls -l
drwxr-xr-- test
-rw-r-xr-- a.txt 默认使用023作为umask,计算出为643,系统自动+1为644。
umask 遮罩码。
管理员umask为022。
普通用户umask为002。
创建文件的默认权限:666-umask
创建目录的默认权限:777-umask
管理员:
文件的默认权限是664
文件夹的默认权限755
普通用户:
文件的默认权限是664
文件夹的默认权限775
#umask [OPTION] UMASKNUM 显示当前用户的umask值
例如:
$whoami
test
$umask
002
$umask 001
$umask
001
修改文件和目录的属主属组:
只有管理员有权限改变文件的属主属组。
属主:
#chown [OPTION] USERNAME[[:|.]GROUPNAME] FILE|DIR
-R 递归。
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-v 显示详细的处理信息-deference 作用于符号链接的指向,而不是链接文件本身。
--reference=FILE1 FILE2,... 把指定的FILE1为参考(引用),把要操作的FILE2,...设置成FILE1相同的属主和属组。
--from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变。
--help 显示帮助信息
--version 显示版本信息
属组:
#chgrp [OPTION] GROUPNAME FILE|DIR
-R 递归
--reference
例如:
#chown -R fedora /tmp/a.txt
#chgrp -R mysql /tmp/a.txt
#chown -R fedora:fedora /tmp/a.txt
#chown -R fedora.fedora /tmp/a.txt
#chown -R :fedora /tmp/a.txt 只更改属组。
#chown --reference=/tmp/b.txt /tmp/a.txt 以b.txt为参考更改a.txt的属主属组。
修改文件的权限:
#chmod [OPTION] [PREM] FILE|DIR
-R 递归。默认修改文件夹,文件夹内的文件权限是不变的。可以使用递归来改变。
--reference
[PREM]
1.使用8进制。若位数不够则会从前补0。
例如:
#chmod 660 /tmp/a.txt 把a.txt的权限改为rw-rw----。
#chmod 75 /tmp/a.txt 由于位数不够,则此命令相当于:
#chmod 075 /tmp/a.txt
2.使用类别范围。使用rwx格式,没有给出的权限为-。
u= 用户
g= 组
o= 其他
a= 所有(可以省略不写)
例如:
#chmod u=r /tmp/a.txt
#chmod ugo=rw /tmp/a.txt
3.操作某类用户某位权限,使用rwx格式,没有给出的权限为-。多个用户使用,(逗号)隔开。
+ 赋予权限
— 收回权限
= 指定权限
例如:
##chmod u+rw /tmp/a.txt
#chmod ugo-x /tmp/a.txt
#chmod u+w,go-w /tmp/a.txt
#chmod +r /tmp/a.txt
站在用户登录的角度来看shell的类型:
登录式shell
正常通过某终端登录
su -USERNAME
su -l USERNAME
非登录式shell
su USERNAME
图形终端下打开的命令窗口
自动执行的shell脚本
bash的配置文件:
按照配置文件作用范围:
全局
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
用户局部
~/.bash_profile
~/.bashrc
按照配置文件作用:
porfile类的文件:
设定环境变量
运行命令或脚本
bashrc类的文件:
设定本地变量
定义命令别名
bash读取配置文件:
登陆式:
/etc/profile --> /etc/profile.d/*.sh -->~/.bash_profile -->~/.bashrc --> /etc/bashrc
非登录式:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*
用户切换:
管理员可以随意切换,不需要密码。
#exit 退出
#su USERNAME 非登陆式切换。只改变了用户名称和用户身份,环境变量,相关配置等等都不做改变。
#su - USERNAME 登陆式切换 相当于重新登录。
#su -l USERNAME 登陆式切换
#su USERNAME -c COMMAND
例如:
#su - fedora -c 'whoami'
例如:
#su root
#su - fedora
#su -l root
显示信息:
#echo [OPTION] 'MESSAGE'
-n 不自动换行。
-e 使转义字符生效。
\033=ctrl,多个字符之间使用;分号隔开。
\033[3#MESSAGE\033[0m 前景色
\033[4#MESSAGE\033[0m 背景色
\033[3#;4#MESSAGE\033[0m 前景色
\033[#MESSAGE\033[0m 字体样式
使用此后使用#reset重新设置终端。
#printf [OPTION] 'MESSAGE' 默认不换行。