当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪Linux基础教程之账号管理与ACL权限设定      本节内容: Linux的账号管理与ACL权限 1 Linux的账号与群组 1.1 UID和GID UID:User ID;GID:Group ID; 一个文件的权限,靠UID,GID来识别,UID与账号之间的对应关系存储在/etc/passwd中 1.2 /etc/passwd结构   代.........
    ▪Linux特定时间执行特定任务的方法分享      本节内容: 学习下at命令、crontab的用法。 1,仅执行一次的任务 所需程序 atd服务 at命令 启动atd   代码示例: # service atd restart atd stop/waiting atd start/running, process 11031 注意:在root下执行,.........
    ▪Linux下磁盘配额(Quota)与高级文件系统管理      本节内容: Linux磁盘配额(Quota) Linux高级文件系统管理 1,磁盘配额(Quota) 磁盘配额 : Linux 是多用户系统,磁盘配额是分配给每个用户的磁盘可用空间的限制。 1)、如何建立磁盘配额 制作账.........

[1]Linux基础教程之账号管理与ACL权限设定
    来源: 互联网  发布时间: 2013-12-24

本节内容:
Linux的账号管理与ACL权限

1 Linux的账号与群组
1.1 UID和GID
UID:User ID;GID:Group ID;
一个文件的权限,靠UID,GID来识别,UID与账号之间的对应关系存储在/etc/passwd中

1.2 /etc/passwd结构
 

代码示例:
$ head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
$cat /etc/passwd | grep minix007
minix007:x:1000:1000:minix007,,,:/home/minix007:/bin/bash

账号名称 密码(此字段为x,真正的密码放在/etc/shadow里了)  UID
0:系统管理员
1~499:系统账号
500~65535:可登入账号
GID

用户信息说明 家目录 Shell

1.3 /etc/shadow结构
 

# cat /etc/shadow | grep minix007
minix007:$6$Uk9abd2a7z.qWQQW0CNBsqeZvpx9UcyQ1:15597:0:99999:7:::
账号名称
加密后的密码
最近修改密码的日期
密码不可变动的天数
密码需要变动的天数
密码需要变动前的警告天数
密码过期后账号宽限天数
账号失效日期
保留

1.4 /etc/group结构
 

$ head -n 4 /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
组名
组密码
GID
此组支持的账号

1.5 群组的一些概念
初始群组:账号一登录就成为此群组成员,这个属性在/etc/passwd里的GID确定
非初始群组:除了初始群组外,一个账号还会属于其它群组,这就是由/etc/group里此组支持的账号确定
有效群组:账号所属群组中的一个,如果账号新建一个文件,这个文件的群组就由当前账号的有效群组确定
groups: 通过这个指令可以知道当前用户账号属于哪些群组,第一个群组就是有效群组
newgrp: 有效群组的切换

1.6 /etc/gshadow结构
 

# head -n 4 /etc/gshadow
root:*::
daemon:*::
bin:*::
sys:*::
组名
密码
群组管理员账号
该群组所属账号

2 账号管理

2.1 新建账号
 

useradd
$useradd minix006 #按默认设置建立一个普通账号
$useradd -r matrix007 #建立一个系统账号
$useradd -D #显示useradd默认值
$ useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

2.2 修改密码
 

passwd
#passwd minix006 # root账号修改其它账号密码
$passwd # 自己修改自己密码
$passwd -S # 列出密码参数(修改日期,失效日期 etc.)
usermod
#usermod -e "2013-10-10" minix006 # 设置minix006账号的失效日期

2.3 忘记密码
普通用户忘记密码:使用root账号登录,再用passwd命令处理
root用户忘记:Live CD开机,挂载根目录,修改/etc/passwd,将root密码字段清空,再开机后root无须密码 即可登录,再用passwd修改root密码。

2.4 修改账号数据
 

userdel:删除账号数据
chsh:修改shell

2.5 查阅账号信息
finger :查阅/etc/passwd里的信息
id :查阅UID,GID信息

2.6 群组管理
 

新建群组:groupadd
修改群组信息:groupmod
删除群组信息:groupdel
建立群组管理员:gpasswd

3 主机的细部权限规划:ACL的使用

3.1 什么是ACL
ACL是Access Control List的缩写,主要目的:
提供传统的owner,group,others的read,write,execute 权限之外的细部权限设定,ACL可以针对单一使用者,单一档案或者目录来进行r,w,x权限的设定,对于需要 有特殊权限的使用状况非常有帮助。

3.2 ACL的启用
查看ACL是否启用
 

$ mount
/dev/sda7 on / type ext4 (rw,errors=remount-ro)
...
/dev/sda10 on /home type ext4 (rw)
...
 

括号里没有显示acl,说明acl没有启用
ACL的启用
# mount -o remount,acl /home
这样,再查看ACL是否启用时,就会得到
 

代码示例:
$ mount | grep home
/dev/sda10 on /home type ext4 (rw,acl)

3.3 ACL的设定
 

getfacl
$ touch testacl
$ ll testacl
-rw-rw-r-- 1 minix007 minix007 0  2月  4 16:42 testacl
$ getfacl testacl
 # file: testacl
 # owner: minix007
 # group: minix007
user::rw-
group::rw-
other::r--
setfacl
 

为特定用户设置权限
 

代码示例:
$ ll testacl
-rw-rw-r-- 1 minix007 minix007 0  2月  4 16:42 testacl
# setfacl -m u:minix007:rx testacl
$ ll testacl
-rw-rwxr--+ 1 minix007 minix007 0  2月  4 16:42 testacl*
 

可以看到,testacl的权限信息已经和以前不同了

4 使用者身份切换

4.1 为什么要身份切换
平时用普通账号,有特别需要再用root,可以避免对系统破坏
运行软件时,为此软件设置一个低权限账号,这样即使这个软件被攻破,也不至于影响整个系统

4.2 身份切换方法
su:任何身份切换
完整切换到新身份:

代码示例:
su -username
 

只用root执行一次命令:su –c "指令串"
由root切换到其它使用者时,无需密码
sudo

5 用户的特殊shell与PAM模块

5.1 特殊的shell,/sbin/nologin
nologin是一个特殊的shell,如果一个账号的shell是nologin,那么它是无法通过shell登录的,但是它可以使用 系统的资源,这样就限制了这个账号使用shell的权利。因为有些账号是不需要使用shell的,分给它们会让系统 陷入危险。

5.2 PAM
一部主机上可能很多地方都需要验证,他们有着不同的验证机制,有的时候这可能造成一些混乱,比如 一致性问题,PAM是一套应用程序编程接口,他提供了一系列验证机制,只要使用者将验证需要告诉PAM, PAM就能返回验证的结果。

5.3 passwd工作原理
用户使用passwd程序,输入密码
passwd调用PAM模块验证
PAM模块到/etc/pam.d/查找与passwd同名配置文件
根据配置文件的设定,引用PAM模块验证分析
将验证结果返回给passwd
passwd根据结果决定下面的动作

6 Linux主机上用户讯息传递
who :目录登录到系统的用户
 

代码示例:
$ who
minix007   tty7         2013-02-04 14:52
minix007   pts/2        2013-02-04 15:15 (:0.0)
 

lastlog:所有账户最后登录时间
使用者交谈:write,mesg,mail


    
[2]Linux特定时间执行特定任务的方法分享
    来源: 互联网  发布时间: 2013-12-24

本节内容:
学习下at命令、crontab的用法。

1,仅执行一次的任务
所需程序
atd服务

at命令
启动atd
 

代码示例:
# service atd restart
atd stop/waiting
atd start/running, process 11031

注意:在root下执行,不然会提示Rejected send message.
at的使用
使用at的权限(因为安全性考虑最好设置)
在/etc/at.allow中设置可以使用at的账号
在/etc/at.deny中设置不可以使用at的账号

例子:
1分钟后执行mkdir
 

代码示例:
$ at now + 1 minutes
warning: commands will be executed using /bin/sh
at> mkdir helloAt
at> <EOT>
job 1 at Wed Feb  6 14:36:00 2013

查看工作
 

代码示例:
# at -c 2
#!/bin/sh
# atrun uid=0 gid=0
# ...
$ mkdir helloAt

特定时间关机
 

代码示例:
$ at 14:00 2013-2-9
warning: commands will be executed using /bin/sh
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT>
job 4 at Sat Feb  9 14:00:00 2013
 

at如何执行
输入输出:标准输入输出会重定向到mailbox里,所以执行echo "hello"在终端下是看不到的
后台工作:系统会将at工作独立于shell,交给atd程序接管,即使关了shell也没关系
查询与删除at中的工作
查询:atq
删除:atrm jobid
batch:和at相似,只是在cpu负载低时才执行

2,循环执行的任务
所需程序
crontab

权限限制
 

/etc/cron.allow
/etc/cron.deny

例子:
$ crontab -e #添加任务
进入编辑环境,使用vim编辑
格式:

# m h dom mon dow command
m:minute, h:hour, dom:day of month
mon:month, dow:day of week

例子:
0 5 * * 1 tar -zcf var/backups/home.tgz /home
*表示任何时间
$ crontab -l #查询任务
$ crontab -r #删除任务

3,可唤醒停机期间的工作任务
anacron:crontab 任务因为关机没有执行,anacron可以在开机时检测没有执行的crontab任务,都执行一遍。

您可能感兴趣的文章:
crontab命令基础与实例
crontab命令的一些例子
linux安装crontab详解
linux中crontab定时执行任务命令的详解
linux中crontab定时自动执行计划任务的方法
crontab学习笔记
crontab 命令格式与例子
linux定时任务设置crontab学习
不错的crontab教程


    
[3]Linux下磁盘配额(Quota)与高级文件系统管理
    来源: 互联网  发布时间: 2013-12-24

本节内容:
Linux磁盘配额(Quota)
Linux高级文件系统管理

1,磁盘配额(Quota)
磁盘配额 : Linux 是多用户系统,磁盘配额是分配给每个用户的磁盘可用空间的限制。

1)、如何建立磁盘配额
制作账号环境
 

代码示例:

# !/bin/bash
# Program:
# This program is used to create account environment for "quota"
# History:
# 2013/2/5 on_1y First release

PATH=$PATH
export PATH

# create a group,put the accounts which is need to be "quota" in it
groupadd myquotagrp
for username in minix01 minix02 minix03
do
    useradd -g myquotagrp $username
    echo "password:" | passwd --stdin $username
done

exit 0

2)、查看文件系统是否支持
 

代码示例:
$ df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda10       94G   37G   53G  41% /home
$ mount | grep home
/dev/sda10 on /home type ext4 (rw)
 

注意:
不能对目录进入磁盘配额,要对文件系统,所以如果想对home进行磁盘配额,home 需要是一个独立的文件系统,如果不是,那么只能对/进行磁盘配额。

另外,VFAT文件系统不支持磁盘配额,需要用mount查看一下文件系统类型。

增加quota支持
在/etc/fstab中的/home段的default后增加两个参数
/home  ext4    defaults,usrquota,grpquota
然后,重新挂载/home:
 

代码示例:
# umount /home
# mount -a
# mount | grep home
# /dev/sda10 on /home type ext4 (rw,usrquota,grpquota)

扫描文件系统并建立Quota记录文件
quotacheck -avug

-a:扫描所有/etc/mtab内,含quota支持的文件系统
-v:显示扫描过程信息
-u:建立aquota.user,会出现在/home下
-g:建立aquota.group,会出现在/home下

Quota的启动,关闭与限制设定
启动
 

quotaon -avug
-a:启动/etc/mtab下所有支持quota文件系统,-v:显示启动过程信息
-u:启动用户限制,-g:启动群组限制
 

关闭
quotaoff

设定用户配额
 

代码示例:
edquota
# edquota -u minix01
Disk quotas for user minix01 (uid 701)
Filesystem blocks soft hard inodes soft hard
/dev/sda10  80    0    0    10     0
 

blocks:磁盘容量
soft/hard:超过soft值会提醒,超过hard值会锁磁盘,单位KB,为0表示无限制
indoes:档案数
soft/hard:inodes的soft/hard

复制给其它账号
edquota -p minix01 -u minix02

设定组配额
edquota -g myquotagrp
Quota值的显示
quota -uvs minix01 minix02

显示用户配额
 

-u:后面指定用户名
-v:显示每个用户在文件系统中quota值
-s:使用1024倍数显示大小单位
 

repquota -auvs
显示文件系统配额

2,软件磁盘阵列(RAID)
RAID:Redundant Arrays of Inexpensive Disks 通过软件技术,把多个小磁盘组合成大磁盘,不仅有数据存储功能,还可以提供数据保护
分级 RAID分成不同级别(level),每一级别有不同的数据存储和保护方式,各级具体信息可以查阅相关文档
分类
硬件磁盘阵列:通过磁盘阵列卡达到组合的目的
软件磁盘阵列:
mdadm

3,逻辑卷管理员(Logic Volume Manager)
作用:弹性调整文件系统容量
基本思想:
将几个实体分区(或磁盘)通过软件组合成一个独立的大磁盘,然后,再将这个大磁盘 分割成可使用的分区(LV),最后即可挂载使用。

具体过程:
PV:分出4个分区,将System ID设为8e,用pvcreae将这些分区转化为LVM最底层的物理卷(Physical Volumn,PV), 相关命令:pvcreate,pvscan,pvdisplay,pvremove,etc.
VG:将PV整合成一个VG(Volumn Group,就是那个大磁盘) 相关命令:vgcreate,vgscan,vgdisplay,vgremove,vgextend,etc.
LV:将全部VG给LV(Logic Volumn) 相关命令:lvcreate,lvscan,lvdisplay,lvremove,lvresize,etc.
将LV格式化成ext3文件系统,挂载到/mnt/lvm中。

增加LV容量:
 

fdisk 新分区,System ID为8e
pvcreate 新的PV
vgextend 将新PV加入原来的VG
lvresize 将新PV内的PE(Physical Extend,相当于block概念,LVM最小存储块)加入原来的LV
resize2fs 将文件系统容量增加

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
Web服务器/前端 iis7站长之家
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3