文件及文件权限

查询当前Linux版本:uname -a
Lsb-release -a  查看系统版本
Linux的文件及文件夹的组织结构成一个倒立置的树形结构。并以 / (slash)分隔。 
重要的文件目录 
用户主目录: /root,/home/username 
用户可执行程序目录: /bin, /usr/bin, /usr/local/bin 
系统可执行程序: /sbin, /usr/sbin, /usr/local/sbin 
挂载点: /media, /mnt 
常用的配置文件目录: /etc 
临时文件目录: /tmp 
内核及引导目录: /boot 
服务器目录: /var 
系统信息目录: /proc, /sys 
共享库目录: /lib, /usr/lib, /usr/local/lib
例如:[root@localhost ~]
表示:user: root 主机名:localhost  目录:/root
------------------------------------------------------------------------- 
cd 命令 是改变用户所在目录的命令
cd      回当前用户家目录 
cd ~   也是回当前用户家目录 
cd -    回上一次所在的目录
还有两种方法 
cd /root   使用绝对路径 
cd root    使用相对路径
ls -a
.   代表当前目录 
..  代表上一级目录
如果我用cd ..这个命令会切换到root 的上级目录就是 /,
更改环境变量来实现当前显示当前的完整路径状态
vi /etc/bashrc,修改这一行后面大写的W,改成小写的w就可以了,保存退出。
u 就是当前用户,h 就是主机名字,w 就是当前目录
 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
要查看修改结果,我们需要关闭终端,重新打开终端就可以看见效果了
--------------------------------------------------------------------------
ls 命令
ls -a 显示所有文件 包括隐藏文件 
ls -l  以长列表方式显示文件 
LINUX里只要文件名前有一个点的就是隐藏文件
用ls –l以长模式察看文件的详细信息 
包含当前目录的硬盘使用空间、文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名。
-rw------- 1 root root   958 Mar 25 00:55 anaconda-ks.cfg
第一个"-"位置是代表文件类型的。
在linux中,所有设备都被当成文件。 
文件权限前的第一个字母用来标识文件类型: 
-:一般文件 
d:目录文件 
b:块设备文件 
c:字符设备文件 
l:链接文件 
234位代表文件所有者的权限。
567位代表文件所属组的权限。
89 10 代表其他用户的权限。  
r 是读的意思
W 是写的意思
X 是执行的意思 
 -----------------------------------------------------------------------
文件的硬连接及软链接
硬连接就像一个文件有多个文件名,
软连接就是产生一个新文件,这个文件指向另一个文件的位置,
 
硬链接和软连接的区别:
1、默认情况下不带参数,ln命令创建硬链接,ln -s 创建软连接
2、硬链接与源文件的inode 节点号相同,软连接的inode节点号与源文件不同
3、Ln命令不能对目录创建硬链接,可以创建软连接
4、删除软链接文件对源文件及硬链接文件无任何影响
5、删除文件的硬链接文件对源文件及软链接文件无任何影响
6、删除链接文件的源文件,对硬链接文件无任何影响,会导致其软链接失败(成为红底白字闪烁状)
7、同时删除源文件和硬链接文件,整个文件才会被真正删除
8、很多硬件设备中的快照功能,使用的就是类似硬链接的原理
9、软链接可以跨文件系统,硬链接不可以!
--------------------------------------------------------------------------
新建文件
名称:touch 
使用权限:所有使用者
使用方式: 
touch [-acfm] 
[-r reference-file] [--file=reference-file] 
[-t MMDDhhmm[[CC]YY][.ss]] 
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}] 
[--no-create] [--help] [--version] 
file1 [file2 ...] 
说明: 
touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。 
参数: 
a 改变档案的读取时间记录。 
m 改变档案的修改时间记录。 
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 
f 不使用,是为了与其他 unix 系统的相容性而保留。 
r 使用参考档的时间记录,与 --file 的效果一样。 
d 设定时间与日期,可以使用各种不同的格式。 
t 设定档案的时间记录,格式与 date 指令相同。 
--no-create 不会建立新档案。 
--help 列出指令格式。 
--version 列出版本讯息。 
例: 
建立文件,若文件不存在,系统会建立一个新的文件。 
touch file 
touch file1 file2

将 file 的时间记录改为 12 月 6 日 11点 11分,公元2012年。
时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。 
touch -c -t 12061111 file 
touch -c -t 120611112012 file
touch -d 和 date -s 的用法相同。
如果没有指定日期,默认为系统日期
touch -d 11:11 file 
touch -d "11:11" file 
touch -d "11:11am" file

如果没有指定时间,默认为 00:00:00
LINUX 文件名字的长度最大是256个字符.
通常由字母、数字、“.”(点号)、“_”(下划线)和 “-”(减号)组成.
强调: LINUX文件名字和命令都是严格区分大小写的。
 -------------------------------------------------------------------------
删除文件
名称:rm 
使用权限:所有使用者 
使用方式:rm [options] name... 
说明:删除档案及目录。 
参数:�G 
-i 删除前逐一询问确认。 
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 
-r 将目录及以下之档案亦逐一删除。
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。
例: 
快速删除log日志
rm  -f  *22.log 
也可echo > /var/log/*22.log清空日志
--------------------------------------------------------------------------
重命名(移动 )文件
名称:cp 
使用权限:所有使用者 
使用方式: 
cp [options] source dest 
cp [options] source... directory 
说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 
把计�G 
-a 尽可能将档案状态、权限等资料都照原状予以复制。 
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。 
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。 
范例: 
将档案 test 复制(已存在),并命名为share : 
cp test  share
 -------------------------------------------------------------------------
文件权限
对于每一个文件,Linux都提供了一套文件权限系统。 
对于每一类用户,权限系统又分别提供他们三种权限 
读(r) :用户是否有权力读文件的内容 
写(w) :用户是否有权利改变文件的内容 
执行(x) :用户是否有权利执行文件
文件权限系统,将操作文件的用户都分成三类 
文件的拥有者(u) 
文件所属组的成员(g) 
其他用户(o)
所属用户
每一个文件都有一个拥有者。文件的拥有者可以改变文件的权限。所有的用户都有一个唯一的ID号(UID) 
用户的名字与标识都放在/etc/passwd里面
 -------------------------------------------------------------------------
下面看看几个简单的命令
创建用户:useradd 
添加一个叫sunsir的用户,sunsir是你想要创建的用户名.命令运行成功,是不会有任何提示的.
然后用passwd 改变这个用户的密码。
注意;如果你passwd命令后面不跟用户名的话,他就会改变当前用户的密码。 
删除用户:userdel
语  法:userdel [-r][用户帐号]
userdel可删除用户帐号与相关的文件。
若不加参数,则仅删除用户帐号,而不删除相关文件。
参  数:
  -f  删除用户登入目录以及目录中所有文件。
我们用su - sunsir命令切换到刚才建立的目录
Su - 是切换用户,中间那个 - 符号的意思完是整切换到sunsir用户。所谓的完整就是连着所有变量一起切换. 
改变文件权限
chmod  文件权限 文件名字
只有root用户可以用chown来改变文件的拥有者。 
语法:chown   用户名  文件名
建立文件用touch 命令,
建立一个文件
名字叫;share
权限: u=rwx   g=rx  o=rx 
改变文件权限有两种方法:
一种是用字母表示:
比如:u+rwx g+rwx  o+rwx,
也可以用减号u-rwx g-rwx o-rwx
第二种chmod后可以用三个数字来表示用户权限 
第一位代表文件拥有者权限 
第二位代表文件所属组成员权限 
第三位代表其他用户权限
一个文件权限分成u,g,o三部分。每部分又分为r,w,x三种权限。那么我们用三组数字来表示,三种用户的权限。
4(读)
2(写)
1(执行) 
用数字表示,比如 777  
如果是7,就证明他有那三种权限,如果是5就证明那个位置的用户只有4和1的权限,也就是没有2,写的权限。
把刚才那个share的文件改成sunsir所有
chown sunsir share

所属组
每一个文件只能属于一个指定的组。所有的用户组也都有一个唯一的ID号(GID
用户的组名与组标识都放在/etc/group里面 
文件的拥有者与root用户,可以用chgrp来改变文件所属的组 
语法:chgrp 组名  文件名
然后在把刚才那个的所有组也改成sunsir组
chgrp sunsir share
root用户也可以使用 #chown 用户名:组名  文件名 
一般普通用户的用户ID与组ID的值大于等于500,而系统用户ID与组ID小于500。(详情请查看/etc/login.defs配置文件)
 
我们创建一个用户的时候,会自动创建用户主目录,会分配UID,还有密码策略,这是怎么规定的呢? 
就是在login.defs这个文件里面
[root@sunsir ~]#vim /etc/login.defs
[root@sunsir ~]# grep -v "#" /etc/login.defs
MAIL_DIR        /var/spool/mail   注:创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
PASS_MAX_DAYS   99999  注:用户的密码不过期最多的天数; 
PASS_MIN_DAYS   0 注:密码修改之间最小的天数; 
PASS_MIN_LEN    5  注:密码最小长度; 
PASS_WARN_AGE   7  注:是密码过期前几天提醒用户,默认是7天。 
UID_MIN     500  注:最小UID为500,也就是说添加用户时,UID是从500开始的 
UID_MAX    60000   注:最大UID为60000;
GID_MIN     500     注:GID是从500开始; 
GID_MAX    60000   注:最大GID为60000;
CREATE_HOME     yes  注:是否创用户家目录,要求创建; 
UMASK           077    注:给用户建立的家目录的权限掩码。
USERGROUPS_ENAB yes  注:建立一个用户的时候也建立相应的组。

MD5_CRYPT_ENAB yes 

本文出自 “奔跑吧.少年” 博客,谢绝转载!

你可能感兴趣的:(linux,权限)