三类用户:
u:属主
g:属组
o:其它用户
chown:改变文件属主(只有管理员可以使用此命令)
#chown USERNAME file...
-R:修改目录及内部文件的属主
--reference(引用参考)=/path/to/somefile file,...
参考某个文件,设定file与参考文件somefile权限一样,属主属组一块改
chown USERNAME:GRPNAME file...
或chown USERNAME.GRPNAME file...
同时改一个文件的所属主和所属组
chown:GRPNAME file
只改一个文件的所属组
#chgrp:用法跟chown一样,也只有管理员才可以使用此命令
#chgrp USERNAME file...
chmod:修改文件的权限
修改三类用户的权限:chmod MODE file,...
修改文件/目录(只修改当前目录的权限)的权限
-R
修改目录底下目录文件的权限
--reference=/path/to/somefile file,..
参考某个文件将权限改为与这个文件的权限一样
修改某类用户或某些类用户权限:chmod 用户类别=MODE file
用户类别:u(属主),g(属组),o(其他用户),a(所有用户)
修改某类用户的某位或某些位权限(操作范围更精细):
chmod 用户类别+/-MODE file,...
用户类别:u,g,o,a
umask 遮罩码/反向掩码
022:root用户默认遮罩码
002:普通user默认遮罩码
666-umask:创建文件时默认666-umask为该文件权限
777-umask:创建目录时默认777-umask为该目录权限
#umask:显示当前用户的umask
#umask UMASK:修改当前用户的umask值
文件默认是不能有执行权限,若算得的结果中有执行权限,则将其权限加1 (也可以从创建文件时的umask值默认为666可以看出这一点)
站在用户登录的角度来説 ,SHELL的类型
登录式shell
正常通过某终端登录的shell
su - USERNAME
su -l USERNAME
非登录式shell:
su USERNAME
图形终端下打开命令窗口
自动执行的shell脚本
bash的配置文件:
全局配置(编辑了以下三下文件中的任意一个,对所有用户都生效)
/etc/profile,/etc/profile.d/*.sh,/etc/bashrc
个人配置(作用范围越小越是最终生效,eg一个环境变量在全局中定义了在个人配置中也定义了则当前用户以个人配置中的全局变量为准)
~/.bash_profile,~/.bashrc
profile类的文件:
设定环境变量
运行命令或脚本
bashrc类的文件:
设定本地变量
定义命令别名
设定环境变量
登录式shell如何读取配置文件?
/etc/profile-->/etc/profile/.d*.sh-->~/.bash_profile-->~/.bashrc -->/etc/bashrc
非登录式shell如何配置文件?
~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh
例子:
chmod:
1、改变文件属主
chown rui /etc/passwd
将/etc/passwd文件改属主为rui
2、修改三类用户的权限:
chmod g=rw /tmp/abc
将/tmp/abc文件的所属组权限改为rw
chmod g=r,o=w /tmp/abc
将/tmp/abc文件的所属组和其他用户的权限分别设为r ,w
chmod a=rwx
将所有用户的执行权限设为rwx
chmod go=rw
将属组其他用户权限设为rw
3、修改某类用户的某位或某些位权限(操作范围更精细)
chmod u-x /tmp/abc
将/tmp/abc属主的执行权限给去掉
chmod u+x,g-x /tmp/abc
将/tmp/abc属主的执行权限加上,属组的执行权限去掉
chmod a+x /tmp/abc
将/tmp/abc所有用户都有执行权限,此处a可省略
umask:
修改当前用户的umask值:
将darui的umask值设为022