shell编程笔记1----文件安全与权限
时间:2006-09-23 来源:fdmtdmcdm
第一章 文件安全与权限
文件的三种访问方式:
读(r,read)、写(w,write)、执行(x,execute)
文件的权限分为三类
文件属主(u,user),同组用户(g,group),其他用户(o,other)
通过ls -l命令查看如下:
-rwxr--r-- 1 xxxuser wnms 181 Jun 21 09:28 sie_hw_btsdata.sh
drwxr-xr-x 2 xxxuser wnms 512 Sep 12 10:58 test
下面从左到右分别介绍
-rwxr--r--是文件的权限位,第一位可能出现的为-(普通文件),d(目录文件),l(符号链接文件),s(套接字文件),b(块设备文件),c(字符设备文件),p(命名管道文件)
1是该文件的硬连接数
xxxuser是该文件的属主
wnms是该文件的属主的组
181表示文件的大小,单位是字节
Jun 21 09:28文件最后修改的时间
sie_hw_btsdata.sh文件名 改变权限位 语法
chmod [who] operator [permission] filename who包括u,g,o,a,分别表示user,group,other,all
operator包括+,-,=
permission包括r,w,x,s(文件属主或组SETID),t(粘性位),l(给文件加锁)
一个目录上出现t,说明该目录下的文件只有属主才可以删除。
一个文件上出现t,说明该脚本或程序在执行时会被放到交换分区
如下面的例子:
hnxxxdb% ls -l
drwxrwxr-t 2 informix informix 512 Apr 14 12:06 INFORMIXTMP 另,可以通过绝对模式来chmod,如chmod 777 filename。 目录的权限会覆盖该目录中文件的权限,即目录权限的优先级比该目录下文件权限的优先级高。
例如:
hnxxxdb% ls -l
drwxr-xr-x 2 resuser wnms 512 Sep 12 10:58 test
hnxxxdb% cd test
hnxxxdb% ls -l
-rwxrwxrwx 1 resuser wnms 181 Jul 28 17:49 nokia_bts_data.sh
与wnms同组的用户将不能写nokia_bts_data,因为test目录不允许写 suid/guid
某个用户对自己的shell脚本设置了suid这样的权限,那么其他用户也对该shell脚本有相应的权限,guid也是这样。
例如:
hnxxxdb% pwd
/usr/bin
hnxxxdb% ls -l|grep '^...s..s'
-r-sr-sr-x 1 root sys 23500 Jul 20 2005 passwd
hnresdb% ls -l|grep '^...s'
-r-s--x--x 1 root sys 342712 Sep 21 2002 admintool
-rwsr-xr-x 1 root sys 37784 Aug 31 2005 at
-rwsr-xr-x 1 root sys 13728 Aug 31 2005 atq
-rwsr-xr-x 1 root sys 12688 Aug 31 2005 atrm
-r-s--x--x 1 root lp 9736 Jan 6 2000 cancel
-r-sr-xr-x 1 root sys 41820 Jul 20 2005 chkey
-r-sr-xr-x 1 root bin 17224 Aug 31 2005 crontab
---s--x--x 1 root uucp 69784 Jan 6 2000 ct
---s--x--x 1 uucp uucp 83808 Feb 27 2001 cu
-r-sr-xr-x 1 root bin 13808 Jan 6 2000 eject
-r-sr-xr-x 1 root bin 26372 Jan 6 2000 fdformat
-r-sr-xr-x 1 root bin 29508 Jul 20 2005 login
-r-s--x--x 1 root lp 23076 Jul 15 2005 lp
-r-s--x--x 1 root lp 7116 Jan 6 2000 lpset
-r-s--x--x 1 root lp 22456 Jul 15 2005 lpstat
-rwsr-xr-x 1 root sys 7696 Dec 16 2004 newgrp
-rwsr-xr-x 1 root sys 7764 Mar 16 2000 newtask
-r-sr-sr-x 1 root sys 23500 Jul 20 2005 passwd
-r-sr-xr-x 1 root bin 9520 Aug 31 2005 pfexec
-r-sr-xr-x 1 root bin 231808 Jul 20 2005 pppd
-r-sr-xr-x 1 root bin 21008 Jan 6 2000 rcp
-r-sr-xr-x 1 root bin 55480 Jan 6 2000 rdist
-r-sr-xr-x 1 root bin 16012 Jan 6 2000 rlogin
-r-sr-xr-x 1 root bin 39044 Mar 12 2003 rmformat
-r-sr-xr-x 1 root bin 8964 Jan 6 2000 rsh
-r-sr-xr-x 1 root sys 21192 Jul 20 2005 su
-r-s--x--x 1 uucp bin 55368 Jun 27 2001 tip
---s--x--x 1 uucp uucp 67192 Jul 29 2003 uucp
---s--x--x 1 uucp uucp 22588 Jul 29 2003 uuglist
---s--x--x 1 uucp uucp 19568 Jan 6 2000 uuname
---s--x--x 1 uucp uucp 62012 Jul 29 2003 uustat
---s--x--x 1 uucp uucp 71032 Jul 29 2003 uux
-r-sr-xr-x 1 root bin 5980 Jan 6 2000 volcheck
-r-sr-xr-x 1 root bin 12580 Mar 12 2005 volrmmount 设置方法
设置suid,在权限位之前加4,设置guid,在权限位之前加2,两个都设置,在权限位之前加6。
chmod 4731 filename,chmod 6711 filename
chown/chgrp
只有文件的属主和系统管理员可以改变文件的所有权
chown -R -h owner file
R参数表示递归到下面的子目录进行同样的操作,h参数表示改变符号链接文件的属主时不影响指向链接的目标文件 chgrp命令用法同chown 也可以用chown命令同时改变组和用户。
chown group:owner file 找出自己属于哪些组,可以用下面的命令
group
id
找某个用户属于哪些组
group username
umask
系统管理员为你最初登陆到系统时确定的创建文件的缺省权限
一般来说umask命令是在/etc/profile文件里设置,这个是给所有用户使用的。如果喜欢永久性的设置自己的umask值,可以放在自己的家目录下的.cshrc(csh)
-----------------------------------------------------------------------------
hnxxxdb% more .cshrc
umask 022
stty erase ^H
set path= (/bin /usr/bin /opt/informix /opt/informix/bin /opt/informix/etc .)
setenv INFORMIXSERVER resserver
setenv INFORMIXDIR /opt/informix
setenv ONCONFIG onconfig
if ( $?prompt ) then
set history=32
endif
setenv LANG C
setenv EDITOR vi
----------------------------------------------------------------------------- 创建一目录
hnxxxdb% mkdir test
hnxxxdb% ls -al
drwxr-xr-x 2 xxxuser wnms 512 Jun 21 19:20 test
目录默认的权限为755 创建一文件
hnxxxdb% touch test.sql hnxxxdb% ls -al
-rw-r--r-- 1 resuser wnms 0 Jun 21 19:22 test.sql
文件默认的权限为644 对于目录来说,每类用户(user,group,other)在umask中的值最大为7,对于文件来说,在umask中最大的值为6 改变umask的值,可通过命令umask nnn,其中nnn为000-777之间的值,直接键入umask查出umask的值,值对应的权限为
umask 文件 目录
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
符号链接
软链接、硬链接
软链接就是一个指向文件的指针。
作用:可以将多个链接指向同一个文件,即在多个用户的家目录下做个链接指向同一个文件,当要做修改时只要改原文件,其他链接文件看到的也就是修改后的。 ln -s 源文件(即实实在在的文件) 目标文件(即符号)
目标文件可以不用先创建,如果没有系统会自动创建
读(r,read)、写(w,write)、执行(x,execute)
文件的权限分为三类
文件属主(u,user),同组用户(g,group),其他用户(o,other)
通过ls -l命令查看如下:
-rwxr--r-- 1 xxxuser wnms 181 Jun 21 09:28 sie_hw_btsdata.sh
drwxr-xr-x 2 xxxuser wnms 512 Sep 12 10:58 test
下面从左到右分别介绍
-rwxr--r--是文件的权限位,第一位可能出现的为-(普通文件),d(目录文件),l(符号链接文件),s(套接字文件),b(块设备文件),c(字符设备文件),p(命名管道文件)
1是该文件的硬连接数
xxxuser是该文件的属主
wnms是该文件的属主的组
181表示文件的大小,单位是字节
Jun 21 09:28文件最后修改的时间
sie_hw_btsdata.sh文件名 改变权限位 语法
chmod [who] operator [permission] filename who包括u,g,o,a,分别表示user,group,other,all
operator包括+,-,=
permission包括r,w,x,s(文件属主或组SETID),t(粘性位),l(给文件加锁)
一个目录上出现t,说明该目录下的文件只有属主才可以删除。
一个文件上出现t,说明该脚本或程序在执行时会被放到交换分区
如下面的例子:
hnxxxdb% ls -l
drwxrwxr-t 2 informix informix 512 Apr 14 12:06 INFORMIXTMP 另,可以通过绝对模式来chmod,如chmod 777 filename。 目录的权限会覆盖该目录中文件的权限,即目录权限的优先级比该目录下文件权限的优先级高。
例如:
hnxxxdb% ls -l
drwxr-xr-x 2 resuser wnms 512 Sep 12 10:58 test
hnxxxdb% cd test
hnxxxdb% ls -l
-rwxrwxrwx 1 resuser wnms 181 Jul 28 17:49 nokia_bts_data.sh
与wnms同组的用户将不能写nokia_bts_data,因为test目录不允许写 suid/guid
某个用户对自己的shell脚本设置了suid这样的权限,那么其他用户也对该shell脚本有相应的权限,guid也是这样。
例如:
hnxxxdb% pwd
/usr/bin
hnxxxdb% ls -l|grep '^...s..s'
-r-sr-sr-x 1 root sys 23500 Jul 20 2005 passwd
hnresdb% ls -l|grep '^...s'
-r-s--x--x 1 root sys 342712 Sep 21 2002 admintool
-rwsr-xr-x 1 root sys 37784 Aug 31 2005 at
-rwsr-xr-x 1 root sys 13728 Aug 31 2005 atq
-rwsr-xr-x 1 root sys 12688 Aug 31 2005 atrm
-r-s--x--x 1 root lp 9736 Jan 6 2000 cancel
-r-sr-xr-x 1 root sys 41820 Jul 20 2005 chkey
-r-sr-xr-x 1 root bin 17224 Aug 31 2005 crontab
---s--x--x 1 root uucp 69784 Jan 6 2000 ct
---s--x--x 1 uucp uucp 83808 Feb 27 2001 cu
-r-sr-xr-x 1 root bin 13808 Jan 6 2000 eject
-r-sr-xr-x 1 root bin 26372 Jan 6 2000 fdformat
-r-sr-xr-x 1 root bin 29508 Jul 20 2005 login
-r-s--x--x 1 root lp 23076 Jul 15 2005 lp
-r-s--x--x 1 root lp 7116 Jan 6 2000 lpset
-r-s--x--x 1 root lp 22456 Jul 15 2005 lpstat
-rwsr-xr-x 1 root sys 7696 Dec 16 2004 newgrp
-rwsr-xr-x 1 root sys 7764 Mar 16 2000 newtask
-r-sr-sr-x 1 root sys 23500 Jul 20 2005 passwd
-r-sr-xr-x 1 root bin 9520 Aug 31 2005 pfexec
-r-sr-xr-x 1 root bin 231808 Jul 20 2005 pppd
-r-sr-xr-x 1 root bin 21008 Jan 6 2000 rcp
-r-sr-xr-x 1 root bin 55480 Jan 6 2000 rdist
-r-sr-xr-x 1 root bin 16012 Jan 6 2000 rlogin
-r-sr-xr-x 1 root bin 39044 Mar 12 2003 rmformat
-r-sr-xr-x 1 root bin 8964 Jan 6 2000 rsh
-r-sr-xr-x 1 root sys 21192 Jul 20 2005 su
-r-s--x--x 1 uucp bin 55368 Jun 27 2001 tip
---s--x--x 1 uucp uucp 67192 Jul 29 2003 uucp
---s--x--x 1 uucp uucp 22588 Jul 29 2003 uuglist
---s--x--x 1 uucp uucp 19568 Jan 6 2000 uuname
---s--x--x 1 uucp uucp 62012 Jul 29 2003 uustat
---s--x--x 1 uucp uucp 71032 Jul 29 2003 uux
-r-sr-xr-x 1 root bin 5980 Jan 6 2000 volcheck
-r-sr-xr-x 1 root bin 12580 Mar 12 2005 volrmmount 设置方法
设置suid,在权限位之前加4,设置guid,在权限位之前加2,两个都设置,在权限位之前加6。
chmod 4731 filename,chmod 6711 filename
chown/chgrp
只有文件的属主和系统管理员可以改变文件的所有权
chown -R -h owner file
R参数表示递归到下面的子目录进行同样的操作,h参数表示改变符号链接文件的属主时不影响指向链接的目标文件 chgrp命令用法同chown 也可以用chown命令同时改变组和用户。
chown group:owner file 找出自己属于哪些组,可以用下面的命令
group
id
找某个用户属于哪些组
group username
umask
系统管理员为你最初登陆到系统时确定的创建文件的缺省权限
一般来说umask命令是在/etc/profile文件里设置,这个是给所有用户使用的。如果喜欢永久性的设置自己的umask值,可以放在自己的家目录下的.cshrc(csh)
-----------------------------------------------------------------------------
hnxxxdb% more .cshrc
umask 022
stty erase ^H
set path= (/bin /usr/bin /opt/informix /opt/informix/bin /opt/informix/etc .)
setenv INFORMIXSERVER resserver
setenv INFORMIXDIR /opt/informix
setenv ONCONFIG onconfig
if ( $?prompt ) then
set history=32
endif
setenv LANG C
setenv EDITOR vi
----------------------------------------------------------------------------- 创建一目录
hnxxxdb% mkdir test
hnxxxdb% ls -al
drwxr-xr-x 2 xxxuser wnms 512 Jun 21 19:20 test
目录默认的权限为755 创建一文件
hnxxxdb% touch test.sql hnxxxdb% ls -al
-rw-r--r-- 1 resuser wnms 0 Jun 21 19:22 test.sql
文件默认的权限为644 对于目录来说,每类用户(user,group,other)在umask中的值最大为7,对于文件来说,在umask中最大的值为6 改变umask的值,可通过命令umask nnn,其中nnn为000-777之间的值,直接键入umask查出umask的值,值对应的权限为
umask 文件 目录
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
符号链接
软链接、硬链接
软链接就是一个指向文件的指针。
作用:可以将多个链接指向同一个文件,即在多个用户的家目录下做个链接指向同一个文件,当要做修改时只要改原文件,其他链接文件看到的也就是修改后的。 ln -s 源文件(即实实在在的文件) 目标文件(即符号)
目标文件可以不用先创建,如果没有系统会自动创建
相关阅读 更多 +