1、安全:让指定的用户看到--这个企业中用的多~这才叫安全~
setfacl
man setfacl
setfacl
man setfacl
setfacl&getfacl 2011-05-07 16:10:58| 分类: Linux&Server | 标签: |字号大中小 订阅 .
使用 setfacl 和 getfacl in linux
如果使用过Unix,就不会对ACL(Access Control List,访问控制列表)感到陌生。在Linux 2.4内核中,ACL作为补丁存在,而在2.6新内核中,它已经是标准内核的一部分了。
传统Unix的ACL,只能对文件设定用户、组和其他人的权限,也就是我们常用的755、644之类的权限。如果想为一个文件交叉定义若干个不同组的用户访问权限,比如说tom、mary、tony、tod分别属于不同的组,某一文件想让mary和tony只读,tom和tod可写,其他用户不可访问。这种要求用传统的Unix ACL是无法实现的。
Linux 2.6内核中的ACL正是为应付类似的需求所设计的。它可以方便地为文件配置任意用户和组的访问权限。
要想使用ACL功能,首先需要正确编译2.6内核,并确保有下列选项:
CONFIG_EXT2_FS_POSIX_ACL=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_FS_POSIX_ACL=y
用新内核启动后,还要求在挂载分区的时候添加必要的参数“acl”。
mount -t ext3 -o rw,acl /dev/hda8 /your_mount_point
或在 /etc/fstab 中加入下列行,实现自动mount分区并且带有“acl”参数。
/dev/hda8
ext3 /your_mount_point defaults,acl 1 1
正确挂载文件系统后,就可以使用ACL的命令来修改文件的ACL属性了。修改ACL属性的命令有setfacl、getfacl 和chacl,其中chacl是一个SGI IRIX兼容命令,主要适用于那些对SGI IRIX以及XFS文件系统比较熟悉的用户。本文只介绍setfacl和getfacl命令,具体用法如下面的例子:
1.使文件1.txt可以被用户test读写
setfacl -m u:test:rw 1.txt
2.使文件1.txt可以被qmail组的组员读,但不能写
setfacl -m g:qmail:r 1.txt
3.把某一文件的ACL属性copy给另一文件,比如把文件1.txt的ACL属性copy给2.txt:
getfacl 1.txt | setfacl -set-file=- 2.txt
4.同时为文件设置不同用户或组的权限
比如对文件2.txt设定testmail用户可读写,qmail组组员可读可执行,nofiles 组组员可执行:
setfacl -m u:testmail:rw,g:qmail:rx,g:nofiles:x 2.txt
查看man page可获得setfact和getfacl命令更详细的用法。
在系统管理员的工作中,遇到的最大的困难往往不是高难度的内核问题,也不是配置Apache服务器之类的问题,而是控制文件访问权限的问题。主管领导常常会提出非常特别的要求,权限配置经常具体到人,这在配置文件服务器Samba时非常难于实现,使用2.6内核中的ACL(访问控制列表)新功能,问题就会迎刃而解.
2、用户:
2.1finger 查看用户的信息
2.2增加用户 useradd
添加密码:passwd abc
uid: 0 系统用户
1~499 伪用户,后天进程启动服务的哪些用户
500~60000 普通用户
如果使用过Unix,就不会对ACL(Access Control List,访问控制列表)感到陌生。在Linux 2.4内核中,ACL作为补丁存在,而在2.6新内核中,它已经是标准内核的一部分了。
传统Unix的ACL,只能对文件设定用户、组和其他人的权限,也就是我们常用的755、644之类的权限。如果想为一个文件交叉定义若干个不同组的用户访问权限,比如说tom、mary、tony、tod分别属于不同的组,某一文件想让mary和tony只读,tom和tod可写,其他用户不可访问。这种要求用传统的Unix ACL是无法实现的。
Linux 2.6内核中的ACL正是为应付类似的需求所设计的。它可以方便地为文件配置任意用户和组的访问权限。
要想使用ACL功能,首先需要正确编译2.6内核,并确保有下列选项:
CONFIG_EXT2_FS_POSIX_ACL=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_FS_POSIX_ACL=y
用新内核启动后,还要求在挂载分区的时候添加必要的参数“acl”。
mount -t ext3 -o rw,acl /dev/hda8 /your_mount_point
或在 /etc/fstab 中加入下列行,实现自动mount分区并且带有“acl”参数。
/dev/hda8
ext3 /your_mount_point defaults,acl 1 1
正确挂载文件系统后,就可以使用ACL的命令来修改文件的ACL属性了。修改ACL属性的命令有setfacl、getfacl 和chacl,其中chacl是一个SGI IRIX兼容命令,主要适用于那些对SGI IRIX以及XFS文件系统比较熟悉的用户。本文只介绍setfacl和getfacl命令,具体用法如下面的例子:
1.使文件1.txt可以被用户test读写
setfacl -m u:test:rw 1.txt
2.使文件1.txt可以被qmail组的组员读,但不能写
setfacl -m g:qmail:r 1.txt
3.把某一文件的ACL属性copy给另一文件,比如把文件1.txt的ACL属性copy给2.txt:
getfacl 1.txt | setfacl -set-file=- 2.txt
4.同时为文件设置不同用户或组的权限
比如对文件2.txt设定testmail用户可读写,qmail组组员可读可执行,nofiles 组组员可执行:
setfacl -m u:testmail:rw,g:qmail:rx,g:nofiles:x 2.txt
查看man page可获得setfact和getfacl命令更详细的用法。
在系统管理员的工作中,遇到的最大的困难往往不是高难度的内核问题,也不是配置Apache服务器之类的问题,而是控制文件访问权限的问题。主管领导常常会提出非常特别的要求,权限配置经常具体到人,这在配置文件服务器Samba时非常难于实现,使用2.6内核中的ACL(访问控制列表)新功能,问题就会迎刃而解.
2、用户:
2.1finger 查看用户的信息
2.2增加用户 useradd
添加密码:passwd abc
uid: 0 系统用户
1~499 伪用户,后天进程启动服务的哪些用户
500~60000 普通用户
/etc/shadow
!表示加锁了,15402表示自1970年unix正式发布到到创建这个用户的时间
0 表示系统用户
7表示提前7天通知你~
/etc/shells
!表示加锁了,15402表示自1970年unix正式发布到到创建这个用户的时间
0 表示系统用户
7表示提前7天通知你~
/etc/shells
ls -a --用户初始化文件,默认会把下面的这些目录拷贝到用户的家目录中~
/etc/login.defs
--加#的表示注释,
pass_max_days ---最长时间
pass_min_days ----最短时间
--加#的表示注释,
pass_max_days ---最长时间
pass_min_days ----最短时间
对这个用户加锁:
usermod -L abc
但是能进去,把这个链接断掉,再连不上
usermod -U abc 解锁
usermod -s /bin/sh abc 修改用户的shell
unix 下面的shell就是sh
unix 下面的shell就是sh
改账户的所属组,改账户的目录、shell ····
火星文;
查看当前系统使用的字符集:
loacle
gb2312 --国标码,简体中文
big5--针对台湾人用的,简体中文,
utf-8 国际编码
查看当前系统使用的字符集:
loacle
gb2312 --国标码,简体中文
big5--针对台湾人用的,简体中文,
utf-8 国际编码
password 可以改密码,锁用户···
3、 建组:groupadd
规划用户:email要用到用户,(单独分一个home分区,对邮件服务器也有用~)
游戏里注册的账号一样的~账号会放在数据库里
游戏里注册的账号一样的~账号会放在数据库里
命令就差不多了~
用户在前,组在后
su 切换
su ifconfig不让看
su -
su ifconfig不让看
su -
3、 磁盘管理:
做磁盘配额
查看硬盘的使用情况
3.1 linux系统如何识别你的硬盘
驱动文件放在哪儿:/lib/modules/2.```/kernel/drivers```
驱动文件放在哪儿:/lib/modules/2.```/kernel/drivers```
3.1.1 系统是否装了驱动~确定接口类型fdisk -l来看(有可能sda(sisa串口硬盘),hda(并口硬盘))
usb也看做sda的设备
.ko 驱动的后缀,
sda 第一块硬盘 sda1--第一个分区
sdb
sdb
p(主)+e(扩展)<=4
裸设备--这块硬盘啥都没有,asm就是用裸设备来用的,
但要保证0磁道是好的
但要保证0磁道是好的
mbr--由于它大小的限制所以主分区只能分4个
扩展分区,要么有,要么只有一个~
sda5 scsi接口的第一块硬盘的第一个逻辑分区
---存储的很重要的一个知识
sda5 scsi接口的第一块硬盘的第一个逻辑分区
---存储的很重要的一个知识
/boot 存放操作系统和内核文件
3、fdisk -l 查看硬盘使用情况
3、fdisk -l 查看硬盘使用情况
4、看每个分区上挂的是什么东西
cat fstab
mount -l
cat fstab
mount -l
5、对机器上的空间如何去划分,划分完如何去使用?如何让操作系统识别这个分区
(一个分区达到99%了,就需要扩容--逻辑卷)
硬盘存小文件、存大文件···
快慢 取决于硬盘中的每个块多大,和节点
减少碎片
(一个分区达到99%了,就需要扩容--逻辑卷)
硬盘存小文件、存大文件···
快慢 取决于硬盘中的每个块多大,和节点
减少碎片
让操作系统识别:可以mount挂载上去,可以写到配置文件中,auto可以让他自动挂载
fdisk /dev/sda
d --删除一个分区
l ---支持那些分区类型
p ----做的东西列出来
t
l ---支持那些分区类型
p ----做的东西列出来
t
先手动增加一块硬盘~
fdisk /dev/sdb
m
l
p
e
1
2
+200m
fdisk /dev/sdb
m
l
p
e
1
2
+200m
w
(老板说,linux中要有个去装windows中的东东)
mkfs 分区后,再格式化
扩展分区,不能格
格完之后在无法调整了
(老板说,linux中要有个去装windows中的东东)
mkfs 分区后,再格式化
扩展分区,不能格
格完之后在无法调整了
只能调整挂载次数、大小···、
mkfs -c etc3 -b 4096
想让每一个分区为4k
tune2fs -l查看分区的情况
tune2fs -l /dev/sda1
tune2fs -l /dev/sda1
磁盘配额:
fat32不能做配额
nf可以
注意:不要对管理员做配额
不要对根分区做配额
fat32不能做配额
nf可以
注意:不要对管理员做配额
不要对根分区做配额
运行级别:
磁盘配额:
前提要有单独的home分区;新化的磁盘
前提要有单独的home分区;新化的磁盘
1、挂载
2、
2、
这个谁解释一下啊,会话1回滚之后,已经释放行锁,为什么会话2还在等待?? 反而新会话3可以执行呢???
plsql内部是一整个事务,会话1虽然回滚了,然是存储过程中只是更新了,并没有提交,所以事务没有结束,此时在session2中执行SELECT info FROM plch_test;是没有结果显示的,所以此时session2被阻塞了,
之后,又做了session1,回滚了,结束了事务,session3就不被阻塞了,再执行存储过程,又在plsql中提交了事务,所以事务产生了 即此时结构为:sessions:[3]
此时id=3,没有id=1的,所以会话2没有结果,让人阻塞了
当在执行session1的时候,产生了id=1,并且提交了,所以先产生结果sessions:[3][1]
-- session 1
BEGIN
SAVEPOINT session1;
plch_test_update ('[1]');
END;
/
BEGIN
SAVEPOINT session1;
plch_test_update ('[1]');
END;
/
-- session 2
BEGIN
plch_test_update ('[2]');
COMMIT;
END;
/
BEGIN
plch_test_update ('[2]');
COMMIT;
END;
/
-- session 1
BEGIN
ROLLBACK TO session1;
END;
/
BEGIN
ROLLBACK TO session1;
END;
/
-- session 3
BEGIN
plch_test_update ('[3]');
COMMIT;
END;
/
BEGIN
plch_test_update ('[3]');
COMMIT;
END;
/
-- session 1
BEGIN
plch_test_update ('[1]');
COMMIT;
END;
BEGIN
plch_test_update ('[1]');
COMMIT;
END;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22815499/viewspace-719721/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22815499/viewspace-719721/