用户&安全管理
时间:2006-09-02 来源:liuxingyuyuni
一、管理用户 1
二、设置 shell 的初始化文件 3
三、系统安全 4
四、访问控制列表 5
五、安全的Shell(SSH) 8
六、ASET 8
七、通用的安全技术 9 一、管理用户
相关命令:
useradd
userdel
usermod
groupadd
groupmod
groupdel
smuser
smgroup
相关的文件 : /etc/passwd /etc/shadow /etc/group
useradd [-c comment] [-d dir] [-e expire] [-f inactive] [-g group] \
[ -G group [ , group...]] [ -m [-k skel_dir]] [-u uid [-o]] \
[-s shell] [-A authorization [,authorization...]]
[-P profile [,profile...]] \
[-R role [,role...]] [-p projname] [-K key=value] <loginname>
-u <uid> 设置唯一的UID
-g <gid> 主要组
-G <gid> 次要组
-s <shell>
-d <dir> 用户目录
-m 如果用户目录不存在,则创建
-e <expiration>
-f <inactive>
-k <skeldir>
-c <comment> 注释
用户名为2-8个的长度,实际可以最多32个,但有效的只有8 例:
# useradd -u 300 -g other -d /export/home/bcalkins -m -s /bin/sh \
-c "Bill Calkins ,ext. 2345" bcalkins# passwd bcalkins smuser add [auth args] - [subcommand args]
-c <comment>
-d <directory>
-g <group>
-G <group>
-n <login>
-s <shell>
-u <uid>
-x autohome=Y|N 如果自动创建HOME目录,用“Y” # /usr/sadm/bin/smuser add -n bcalkins -c "Bill Calkins Ext 100" passwd的参数
-s <name> 显示密码参数
-d <name> 删除用户密码,并锁定用户(delete)
-e <name> 改变登录脚本
-f <name> 强迫用户下次必须修改密码
-h <name> 改变用户目录
-l <name> 锁定用户账号(lock)
-N <name> 设置用户密码项的一个值,是之不能登录,但并不锁定用户
-u <name> 解除用户锁定(unlock) # passwd -f bcalkins
强迫用户在下一次登陆时改变密码 # passwd -h bcalkins
改变用户的用户目录 usermod [ -u uid [-o]] [-g group] [ -G group [ , group...]]
[ -d dir [-m]] [-s shell] [-c comment] [-l new_name] [-f inactive]
[-e expire] [-A authorization2 [, authorization]] [-P profile
[, profile]] [-R role [, role]] [-K key=value] <loginname>
-l <new-login-name>
-m 移动用户目录至-d选项指定的新位置 # usermod -d /export/home/wcalkins -m -s /bin/ksh -l wcalkins bcalkins
# usermod -e 10/15/2006 wcalkins
设置帐户到期时间
userdel [-r] <login-name>
-r 用来移除用户目录
groupadd [-g <gid>] -o <group-name>
o 用来允许GID可以重复为不同的组使用
# groupadd -g 1000 acct
groupmod [-g <gid>] -o [-n <name>] <group-name>
groupdel <group-name> smgroup add –g 300 –n development 二、设置 shell 的初始化文件
csh : /etc/.login $HOME/.cshrc $HOME/.login (登出: $HOME/.logout)
bsh : /etc/.profile $HOME/.profile
ksh : /etc/.profile $HOME/.profile $HOME/.kshrc
CDE环境下,会使用 $HOME/.dtprofile ,其中的参数值 DTSOURCEPROFILE 为 True ,则要运行 $HOME/.profile,在.profile中包括
set -ha
ENV = $HOME/.kshrc
则可以使用ksh
Bourne shell (/sbin/sh)
C shell (/bin/csh)
TENEX C shell (/bin/tcsh)
Bourne Again shell (/bin/bash)
缺省的文件 /etc/skel : local.cshrc local.login local.profile
BSH 或 KSH :
PATH = $PATH:/usr/bin:/$HOME/bin; export PATH
CSH :
set path = ($path /usr/bin $HOME/bin)
shell的环境变量
LOGNAME HOME SHELL LPDEST PWD PS1 PATH/path prompt TERM/term MAIL MANPATH umask
newtask 创建新的任务,并可选的改变项目组 项目组 /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
最后一项说明组staff(其gid为10),包括在项目group.staff中 三、系统安全
1. 控制物理安全
2. 控制系统访问
3. 控制文件访问
4. 审核用户
5. 控制网络安全
6. 安全的超级用户访问 /etc/default :
passwd 控制用户密码的缺省策略(其中PASSLENGTH,表明最小的密码长度,可以是6,7,8)
login 控制系统登录策略,包括root访问策略,缺省限制root访问控制台
su 当使用 su 命令时记录何记录文件的位置
/etc/passwd
<username>:<password>:<uid>:<gid>:<comment>:<home-directory>:<login-shell>
/etc/shadow
<username>:<password>:<lastchg>:<min>:<max>:<warn>:<inactive>:<expire>
/etc/group
<group-name>:<group-password>:<gid>:<user-list>
用户列表以“,”分隔 pwck命令可以用来检查passwd文件,用/usr/ucb/vipw命令可以用来编辑passwd文件 # groups
显示组列表
# newgrp other
改变用户所属的主要组
# id
显示用户ID和组ID
文件访问(拥有者访问权限,所在组访问权限,其它访问权限)
chmod rwxrwxrwx <filename>
chown bcalkins <filename>
chgrp engrp <filename>
chown bcalkins:engrp <filename>
同时改变所属用户和组
设置用户新建目录或文件(文件和目录是不同的,目录缺省有执行权限,文件则没有)的权限使用umask命令一般存放在/etc/profile或用户初始化脚本中
umask 022
Sticky Bits (保护目录中的文件,不能被非拥有者或root用户所删除)
使用chmod 的 t 参数设置(1000)
四、访问控制列表
ACL项的格式:entry_type:uid|gid:perms
entry_type指的是:user,mask,group;perms指的是权限
u[ser]::<perms>
g[oup]::<perms>
o[ther]:<perms>
m[ask]:<perms>
u[ser]:<uid>:<perms>
g[roup]:<gid>:<perms>
d[efault]:u[ser]::<perms>
d[efault]:g[roup]::<perms>
d[efault]:o[ther]:<perms>
d[efault]:m[ask]:<perms>
d[efault]:u[ser]:<uid>:<perms>
d[efault]:g[roup]:<gid>:<perms> $ setfacl -s user::perms,group::perms,pthers:perms,mask:perms,\acl_entry_list filename ... 设置目录的缺省ACL,必须先设置文件的owner , group , others , ACL mask (u/g , o , m) setfacl -s user::rwx,g::r--,o:---,d:user::rwx,d:group::r--,d:o:---,d:m:r-x:user:bcalkins:r-x /export/home/bholzgen
getfacl -d /export/home/bholzgen
显示
复制一个文件的ACL至另一个文件
getfacl <filename1> | setfacl -f - <filename2>
编辑一个文件中的ACL项
setfacl -m <acl_entry_list> <filename1> [filename2 ...]
删除一个文件中的ACL项
setfacl -d u:bcalkins file1 file2
注意:不要将当前目录加到PATH变量中(安全原因)
setuid(4000)
chmod 4711 myprog1
ls -l myprog1
-rws--x--x
setgid(2000)
chmod 2751 myprog1
ls -l myprog1
-rwxr-s--x
# find / -user root -perm -4000 -ls > /tmp/<filename>
监视用户
logins
loginlog
who
whodo
last
# logins -x -l <username>
(-x 扩展的登录状态信息,-l专门的用户) 检查没有密码的用户
# logins -p
生成用户登陆失败记录文件
touch /var/adm/loginlog
chmod 600 /var/adm/loginlog
who命令(使用/var/adm/utmpx和/var/adm/wtmpx)
-a 使用/var/adm/utmpx,显示用户的访问和登录信息
-b
-m 仅显示当前的终端信息
-q 仅显示当前登录的信息
-r 显示当前的运行等级
-s 仅列出name,line,time字段 svcs rusers
rusers –l(类似于who命令)
who am i
显示当前用户,同who –m(Outputs only information about the current terminal,如,使用了su – wcalkins,输出仍显示root用户,它关注文件/var/adm/utmpx,显示的是非console的最新一项,即来自于tty,如pts/7)
/usr/ucb/whoami
显示当前有效的用户(即utmpx最新的一项,如,使用了su – wcalkins,输出显示wcalkins用户)
whodo
whodo -l
last(使用了/var/adm/wtmpx)
控制网络安全
inetadm
inetadm -d telnet
禁用telnet
显示服务状态
svcs ftp
inetadm | grep ftp
/etc/default/login
CONSOLE = /dev/console
/etc/hosts.equiv 保存信任主机的列表
用户的 .rhosts 保存用户的信任主机
限制FTP
/etc/ftpd/ftpusers(里面列出的用户将不能访问ftp)
限制root的访问
/etc/default/login(SYSLOG_FAILED_LOGINS=5,用于在登录失败多少次后将失败记录)
CONSOLE = /dev/console 允许root从控制台登录
CONSOLE = root 不能以任何方式登录但可以用su方式登录,登录记录在/var/adm/sulog(该先记录在/etc/default/su中,SULOG=/var/adm/sulog,默认就是开启的) 五、安全的Shell(SSH)
ssh scp|sftp
配置文件:/etc/ssh/ssh_config
用户配置文件:$HOME/.ssh/config ssh_keygen用于产生密钥文件(如:ssh_keygen –t rsa) 用svcadm运行sshd:
svcadm svc:/network/ssh:default scp <sourcefile> <username>@<hostname>:</destinationdir>
示例:
scp file1 [email protected]:~
复制到bcalkins的用户目录 /etc/nologin 禁止用户登录的文件
/var/adm/loginlog 监控用户失败的登录信息(缺省只监控终端的登录)
相关的设置/etc/default/login
SYSLOG=YES
SYSLOG_FAILED_LOGIN=5 svcadm refresh system/system-log 六、ASET
自动安全增强工具
1. 校验适当系统文件权限
2. 校验系统文件内容
3. 检查/etc/passwd,/etc/shadow文件的一致性和完整性
4. 检查环境文件(.profile,.login,.cshrc)
5. 校验.EEPROM设置
6. 确定系统可以安全的使用,在一定的网络延时条件下 /usr/aset/aset –l <level> -d <pathname>
<level> 指的是安全等级,hign、medium、low 七、通用的安全技术
二、设置 shell 的初始化文件 3
三、系统安全 4
四、访问控制列表 5
五、安全的Shell(SSH) 8
六、ASET 8
七、通用的安全技术 9 一、管理用户
相关命令:
useradd
userdel
usermod
groupadd
groupmod
groupdel
smuser
smgroup
相关的文件 : /etc/passwd /etc/shadow /etc/group
useradd [-c comment] [-d dir] [-e expire] [-f inactive] [-g group] \
[ -G group [ , group...]] [ -m [-k skel_dir]] [-u uid [-o]] \
[-s shell] [-A authorization [,authorization...]]
[-P profile [,profile...]] \
[-R role [,role...]] [-p projname] [-K key=value] <loginname>
-u <uid> 设置唯一的UID
-g <gid> 主要组
-G <gid> 次要组
-s <shell>
-d <dir> 用户目录
-m 如果用户目录不存在,则创建
-e <expiration>
-f <inactive>
-k <skeldir>
-c <comment> 注释
用户名为2-8个的长度,实际可以最多32个,但有效的只有8 例:
# useradd -u 300 -g other -d /export/home/bcalkins -m -s /bin/sh \
-c "Bill Calkins ,ext. 2345" bcalkins# passwd bcalkins smuser add [auth args] - [subcommand args]
-c <comment>
-d <directory>
-g <group>
-G <group>
-n <login>
-s <shell>
-u <uid>
-x autohome=Y|N 如果自动创建HOME目录,用“Y” # /usr/sadm/bin/smuser add -n bcalkins -c "Bill Calkins Ext 100" passwd的参数
-s <name> 显示密码参数
-d <name> 删除用户密码,并锁定用户(delete)
-e <name> 改变登录脚本
-f <name> 强迫用户下次必须修改密码
-h <name> 改变用户目录
-l <name> 锁定用户账号(lock)
-N <name> 设置用户密码项的一个值,是之不能登录,但并不锁定用户
-u <name> 解除用户锁定(unlock) # passwd -f bcalkins
强迫用户在下一次登陆时改变密码 # passwd -h bcalkins
改变用户的用户目录 usermod [ -u uid [-o]] [-g group] [ -G group [ , group...]]
[ -d dir [-m]] [-s shell] [-c comment] [-l new_name] [-f inactive]
[-e expire] [-A authorization2 [, authorization]] [-P profile
[, profile]] [-R role [, role]] [-K key=value] <loginname>
-l <new-login-name>
-m 移动用户目录至-d选项指定的新位置 # usermod -d /export/home/wcalkins -m -s /bin/ksh -l wcalkins bcalkins
# usermod -e 10/15/2006 wcalkins
设置帐户到期时间
userdel [-r] <login-name>
-r 用来移除用户目录
groupadd [-g <gid>] -o <group-name>
o 用来允许GID可以重复为不同的组使用
# groupadd -g 1000 acct
groupmod [-g <gid>] -o [-n <name>] <group-name>
groupdel <group-name> smgroup add –g 300 –n development 二、设置 shell 的初始化文件
csh : /etc/.login $HOME/.cshrc $HOME/.login (登出: $HOME/.logout)
bsh : /etc/.profile $HOME/.profile
ksh : /etc/.profile $HOME/.profile $HOME/.kshrc
CDE环境下,会使用 $HOME/.dtprofile ,其中的参数值 DTSOURCEPROFILE 为 True ,则要运行 $HOME/.profile,在.profile中包括
set -ha
ENV = $HOME/.kshrc
则可以使用ksh
Bourne shell (/sbin/sh)
C shell (/bin/csh)
TENEX C shell (/bin/tcsh)
Bourne Again shell (/bin/bash)
缺省的文件 /etc/skel : local.cshrc local.login local.profile
BSH 或 KSH :
PATH = $PATH:/usr/bin:/$HOME/bin; export PATH
CSH :
set path = ($path /usr/bin $HOME/bin)
shell的环境变量
LOGNAME HOME SHELL LPDEST PWD PS1 PATH/path prompt TERM/term MAIL MANPATH umask
newtask 创建新的任务,并可选的改变项目组 项目组 /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
最后一项说明组staff(其gid为10),包括在项目group.staff中 三、系统安全
1. 控制物理安全
2. 控制系统访问
3. 控制文件访问
4. 审核用户
5. 控制网络安全
6. 安全的超级用户访问 /etc/default :
passwd 控制用户密码的缺省策略(其中PASSLENGTH,表明最小的密码长度,可以是6,7,8)
login 控制系统登录策略,包括root访问策略,缺省限制root访问控制台
su 当使用 su 命令时记录何记录文件的位置
/etc/passwd
<username>:<password>:<uid>:<gid>:<comment>:<home-directory>:<login-shell>
/etc/shadow
<username>:<password>:<lastchg>:<min>:<max>:<warn>:<inactive>:<expire>
/etc/group
<group-name>:<group-password>:<gid>:<user-list>
用户列表以“,”分隔 pwck命令可以用来检查passwd文件,用/usr/ucb/vipw命令可以用来编辑passwd文件 # groups
显示组列表
# newgrp other
改变用户所属的主要组
# id
显示用户ID和组ID
文件访问(拥有者访问权限,所在组访问权限,其它访问权限)
chmod rwxrwxrwx <filename>
chown bcalkins <filename>
chgrp engrp <filename>
chown bcalkins:engrp <filename>
同时改变所属用户和组
设置用户新建目录或文件(文件和目录是不同的,目录缺省有执行权限,文件则没有)的权限使用umask命令一般存放在/etc/profile或用户初始化脚本中
umask 022
Sticky Bits (保护目录中的文件,不能被非拥有者或root用户所删除)
使用chmod 的 t 参数设置(1000)
四、访问控制列表
ACL项的格式:entry_type:uid|gid:perms
entry_type指的是:user,mask,group;perms指的是权限
u[ser]::<perms>
g[oup]::<perms>
o[ther]:<perms>
m[ask]:<perms>
u[ser]:<uid>:<perms>
g[roup]:<gid>:<perms>
d[efault]:u[ser]::<perms>
d[efault]:g[roup]::<perms>
d[efault]:o[ther]:<perms>
d[efault]:m[ask]:<perms>
d[efault]:u[ser]:<uid>:<perms>
d[efault]:g[roup]:<gid>:<perms> $ setfacl -s user::perms,group::perms,pthers:perms,mask:perms,\acl_entry_list filename ... 设置目录的缺省ACL,必须先设置文件的owner , group , others , ACL mask (u/g , o , m) setfacl -s user::rwx,g::r--,o:---,d:user::rwx,d:group::r--,d:o:---,d:m:r-x:user:bcalkins:r-x /export/home/bholzgen
getfacl -d /export/home/bholzgen
显示
复制一个文件的ACL至另一个文件
getfacl <filename1> | setfacl -f - <filename2>
编辑一个文件中的ACL项
setfacl -m <acl_entry_list> <filename1> [filename2 ...]
删除一个文件中的ACL项
setfacl -d u:bcalkins file1 file2
注意:不要将当前目录加到PATH变量中(安全原因)
setuid(4000)
chmod 4711 myprog1
ls -l myprog1
-rws--x--x
setgid(2000)
chmod 2751 myprog1
ls -l myprog1
-rwxr-s--x
# find / -user root -perm -4000 -ls > /tmp/<filename>
监视用户
logins
loginlog
who
whodo
last
# logins -x -l <username>
(-x 扩展的登录状态信息,-l专门的用户) 检查没有密码的用户
# logins -p
生成用户登陆失败记录文件
touch /var/adm/loginlog
chmod 600 /var/adm/loginlog
who命令(使用/var/adm/utmpx和/var/adm/wtmpx)
-a 使用/var/adm/utmpx,显示用户的访问和登录信息
-b
-m 仅显示当前的终端信息
-q 仅显示当前登录的信息
-r 显示当前的运行等级
-s 仅列出name,line,time字段 svcs rusers
rusers –l(类似于who命令)
who am i
显示当前用户,同who –m(Outputs only information about the current terminal,如,使用了su – wcalkins,输出仍显示root用户,它关注文件/var/adm/utmpx,显示的是非console的最新一项,即来自于tty,如pts/7)
/usr/ucb/whoami
显示当前有效的用户(即utmpx最新的一项,如,使用了su – wcalkins,输出显示wcalkins用户)
whodo
whodo -l
last(使用了/var/adm/wtmpx)
控制网络安全
inetadm
inetadm -d telnet
禁用telnet
显示服务状态
svcs ftp
inetadm | grep ftp
/etc/default/login
CONSOLE = /dev/console
/etc/hosts.equiv 保存信任主机的列表
用户的 .rhosts 保存用户的信任主机
限制FTP
/etc/ftpd/ftpusers(里面列出的用户将不能访问ftp)
限制root的访问
/etc/default/login(SYSLOG_FAILED_LOGINS=5,用于在登录失败多少次后将失败记录)
CONSOLE = /dev/console 允许root从控制台登录
CONSOLE = root 不能以任何方式登录但可以用su方式登录,登录记录在/var/adm/sulog(该先记录在/etc/default/su中,SULOG=/var/adm/sulog,默认就是开启的) 五、安全的Shell(SSH)
ssh scp|sftp
配置文件:/etc/ssh/ssh_config
用户配置文件:$HOME/.ssh/config ssh_keygen用于产生密钥文件(如:ssh_keygen –t rsa) 用svcadm运行sshd:
svcadm svc:/network/ssh:default scp <sourcefile> <username>@<hostname>:</destinationdir>
示例:
scp file1 [email protected]:~
复制到bcalkins的用户目录 /etc/nologin 禁止用户登录的文件
/var/adm/loginlog 监控用户失败的登录信息(缺省只监控终端的登录)
相关的设置/etc/default/login
SYSLOG=YES
SYSLOG_FAILED_LOGIN=5 svcadm refresh system/system-log 六、ASET
自动安全增强工具
1. 校验适当系统文件权限
2. 校验系统文件内容
3. 检查/etc/passwd,/etc/shadow文件的一致性和完整性
4. 检查环境文件(.profile,.login,.cshrc)
5. 校验.EEPROM设置
6. 确定系统可以安全的使用,在一定的网络延时条件下 /usr/aset/aset –l <level> -d <pathname>
<level> 指的是安全等级,hign、medium、low 七、通用的安全技术
相关阅读 更多 +