计算资源:

权限:

定义资源或服务的访问能力叫做权限。

用户:

获取资源或服务的凭证(标识符)。

用户组:

逻辑容器,用来存放用户,可以关联权限。组织权限的容器,可以指派权限给容器内的用户。


文件的访问权限结构:

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' 默认不换行。