- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章CentOS 7安装完成后初始化的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、添加用户 。
新增名为"wang"的用户 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
[root@vdevops ~]
# useradd wang #添加账户
[root@vdevops ~]
# passwd wang #设置密码
Changing password
for
user wang.
New password:
Retype new password:
passwd
: all authentication tokens updated successfully.
[root@vdevops ~]
# exit #退出
以用户
"wang"
为例,设置其为唯一拥有管理员权限的账户
[root@vdevops ~]
# usermod -G wheel wang
[root@vdevops ~]
# vim /etc/pam.d/su
[html] view plain copy print?
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
# 取消下面一行的注释
auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
设置root账户的邮件转发
# Person who should get root's mail
# 最后一行,取消注释,改变用户名称
root: wang
|
2、设置防火墙和SELINUX 。
【1】防火墙 。
查看防火墙状态 。
1
2
3
4
5
6
7
8
9
|
[root@vdevops ~]
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (
/usr/lib/systemd/system/firewalld
.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2016-10-26 01:09:49 CST; 1h 36min ago
Main PID: 744 (firewalld)
CGroup:
/system
.slice
/firewalld
.service
└─744
/usr/bin/python
-Es
/usr/sbin/firewalld
--nofork --nopid
Oct 26 01:09:46 vdevops.com systemd[1]: Starting firewalld - dynamic firewall daemon...
Oct 26 01:09:49 vdevops.com systemd[1]: Started firewalld - dynamic firewall daemon.
|
防火墙基本操作 。
1
2
|
[root@vdevops ~]
# systemctl start firewalld #启动防火墙
[root@vdevops ~]
# systemctl enable firewalld #设置防火墙开机自启
|
默认情况下,“public”区域应用于NIC,dhcpv6-client和ssh是允许的.
当使用“firewall-cmd”命令操作时,如果输入命令不带“--zone = ***”规范,则配置设置为默认区域.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#显示默认区域
[root@vdevops ~]
# firewall-cmd --get-default-zone
public
#显示当前设置
[root@vdevops ~]
# firewall-cmd --list-all
public (default, active)
interfaces: eno16777736
sources:
services: dhcpv6-client
ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
#显示全部区域
[root@vdevops ~]
# firewall-cmd --list-all-zones
block
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
dmz
interfaces:
sources:
services:
ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
...
#显示特定区域允许的服务
[root@vdevops ~]
# firewall-cmd --list-service --zone=external
ssh
#改变默认区域
[root@vdevops ~]
# firewall-cmd --set-default-zone=external
success
#改变制定区域的接口
[root@vdevops ~]
# firewall-cmd --change-interface=eth1 --zone=external
success
#显示制定区域的状态
[root@vdevops ~]
# firewall-cmd --list-all --zone=external
external (default, active)
interfaces: eno16777736 eth1
sources:
services:
ssh
ports:
masquerade:
yes
forward-ports:
icmp-blocks:
rich rules:
#注:改变制定区域的接口,前提是次接口在当前系统是存在的
|
显示默认定义的服务 。
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@vdevops ~]
# firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication
ftp
high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp
ssh
telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https
#定义文件路径如下,如果需要添加新的定义文件,在下面目录添加相应的XML文件
[root@vdevops ~]
# ls /usr/lib/firewalld/services
amanda-client.xml freeipa-ldap.xml ipp.xml libvirt.xml pmcd.xml RH-Satellite-6.xml tftp-client.xml
bacula-client.xml freeipa-replication.xml ipsec.xml mdns.xml pmproxy.xml rpc-bind.xml tftp.xml
bacula.xml
ftp
.xml iscsi-target.xml mountd.xml pmwebapis.xml rsyncd.xml transmission-client.xml
dhcpv6-client.xml high-availability.xml kerberos.xml ms-wbt.xml pmwebapi.xml samba-client.xml vdsm.xml
dhcpv6.xml https.xml kpasswd.xml mysql.xml pop3s.xml samba.xml vnc-server.xml
dhcp.xml http.xml ldaps.xml nfs.xml postgresql.xml smtp.xml wbem-https.xml
dns.xml imaps.xml ldap.xml ntp.xml proxy-dhcp.xml
ssh
.xml
freeipa-ldaps.xml ipp-client.xml libvirt-tls.xml openvpn.xml radius.xml telnet.xml
|
添加或删除允许的服务,重新启动系统后,更改将恢复。如果永久更改设置,请添加“--permanent”选项.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#以添加http服务为例
[root@vdevops ~]
# firewall-cmd --add-service=http
success
[root@vdevops ~]
# firewall-cmd --list-service
http
ssh
#移除添加的http
<pre name=
"code"
class=
"html"
>[root@vdevops ~]
# firewall-cmd --remove-service=http
success
[root@vdevops ~]
# firewall-cmd --list-service
ssh
#添加http服务,永久生效
[root@vdevops ~]
# firewall-cmd --add-service=http --permanentsuccess
[root@vdevops ~]
# firewall-cmd --reloadsuccess[root@vdevops ~]# firewall-cmd --list-servicehttp ssh
|
添加和移除端口 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@vdevops ~]
# firewall-cmd --add-port=465/tcp #添加端口
success
[root@vdevops ~]
# firewall-cmd --list-port
465
/tcp
[root@vdevops ~]
# firewall-cmd --remove-port=465/tcp #移除端口
success
[root@vdevops ~]
# firewall-cmd --list-port
[root@vdevops ~]
# firewall-cmd --add-port=465/tcp --permanent #添加端口,永久生效
success
[root@vdevops ~]
# firewall-cmd --reload
success
[root@vdevops ~]
# firewall-cmd --list-port
465
/tcp
|
加或删除禁止的ICMP类型 。
1
2
3
4
5
6
7
8
9
10
|
[root@dlp ~]
# firewall-cmd --add-icmp-block=echo-request #添加禁止回应请求
success
[root@dlp ~]
# firewall-cmd --list-icmp-blocks
echo
-request
[root@dlp ~]
# firewall-cmd --remove-icmp-block=echo-request #移除添加的参数
success
[root@dlp ~]
# firewall-cmd --list-icmp-blocks
[root@dlp ~]
# firewall-cmd --get-icmptypes #显示ICMP支持的功能
destination-unreachable
echo
-reply
echo
-request parameter-problem redirect
router-advertisement router-solicitation
source
-quench
time
-exceeded
|
【2】如果不需要防火墙服务,关闭如下 。
1
2
3
4
5
6
7
8
9
10
|
[root@vdevops ~]
# systemctl stop firewalld #停止防火墙服务
[root@vdevops ~]
# systemctl disable firewalld #禁止防火墙开机自启
Removed
symlink
/etc/systemd/system/dbus-org
.fedoraproject.FirewallD1.service.
Removed
symlink
/etc/systemd/system/basic
.target.wants
/firewalld
.service.
3、SELinux
[html] view plain copy print?
[root@vdevops ~]
# getenforce #查看SELINUX工作模式
Enforcing
[root@vdevops ~]
# sed -i 's/SELINUX=Enforcing/SELINUX=disabled/' /etc/selinux/config #禁用SELINUX
[root@vdevops ~]
# setenforce 0 #临时禁用SELINUX,无需重启
|
4、网络设置 。
【1】、设置静态IP和改变接口名称 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
[root@vdevops ~]
# nmcli c modify eno16777736 ipv4.addresses 10.1.1.56/24 #设置静态IP
[root@vdevops ~]
# nmcli c modify eno16777736 ipv4.gateway 10.1.1.1 #设置网关
[root@vdevops ~]
# nmcli c modify eno16777736 ipv4.dns 10.1.1.1 #设置DNS
[root@vdevops ~]
# nmcli c modify eno16777736 ipv4.method manual #设置ipv4的类型为静态
[root@vdevops ~]
# nmcli c down eno16777736;nmcli c up eno16777736 #重启网络接口
Connection
'eno16777736'
successfully deactivated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/0
)
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/1
)
[root@vdevops ~]
# nmcli d show eno16777736 #查看网络接口状态
GENERAL.DEVICE: eno16777736
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:B6:F5:5E
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: eno16777736
GENERAL.CON-PATH:
/org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 10.1.1.56
/24
IP4.GATEWAY: 10.1.1.1
IP4.DNS[1]: 10.1.1.1
IP6.ADDRESS[1]: fe80::20c:29ff:feb6:f55e
/64
IP6.GATEWAY:
[root@vdevops ~]
# ip addr show #查看IP状态
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link
/loopback
00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1
/8
scope host lo
valid_lft forever preferred_lft forever
inet6 ::1
/128
scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link
/ether
00:0c:29:b6:f5:5e brd ff:ff:ff:ff:ff:ff
inet 10.1.1.56
/24
brd 10.1.1.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feb6:f55e
/64
scope link
valid_lft forever preferred_lft forever
|
【2】禁用IPV6 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@vdevops ~]
# vim /etc/default/grub
#第六行,添加
GRUB_CMDLINE_LINUX=
"crashkernel=auto <span style="
color:
#FF0000;">ipv6.disable=1</span> rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
[root@vdevops ~]
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration
file
...
Found linux image:
/boot/vmlinuz-3
.10.0-327.36.2.el7.x86_64
Found initrd image:
/boot/initramfs-3
.10.0-327.36.2.el7.x86_64.img
Found linux image:
/boot/vmlinuz-3
.10.0-327.el7.x86_64
Found initrd image:
/boot/initramfs-3
.10.0-327.el7.x86_64.img
Found linux image:
/boot/vmlinuz-0-rescue-d1b9467b8b744a3db391f2c15fe58a94
Found initrd image:
/boot/initramfs-0-rescue-d1b9467b8b744a3db391f2c15fe58a94
.img
done
[root@vdevops ~]
# reboot #重启系统
|
【3】如果要将网络接口名称用作ethX,请按如下所示进行配置.
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@vdevops ~]
# vim /etc/default/grub
#第六行添加
GRUB_CMDLINE_LINUX=
"crashkernel=auto ipv6.disable=1 <span style="
color:
#FF0000;">net.ifnames=0</span> rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet
[root@vdevops ~]
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration
file
...
Found linux image:
/boot/vmlinuz-3
.10.0-327.36.2.el7.x86_64
Found initrd image:
/boot/initramfs-3
.10.0-327.36.2.el7.x86_64.img
Found linux image:
/boot/vmlinuz-3
.10.0-327.el7.x86_64
Found initrd image:
/boot/initramfs-3
.10.0-327.el7.x86_64.img
Found linux image:
/boot/vmlinuz-0-rescue-d1b9467b8b744a3db391f2c15fe58a94
Found initrd image:
/boot/initramfs-0-rescue-d1b9467b8b744a3db391f2c15fe58a94
.img
done
|
4、服务设置 。
[1]、查看服务状态 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# 显示正在运行的服务
[root@vdevops ~]
# systemctl -t service
UNIT LOAD ACTIVE SUB DESCRIPTION
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS
/DNS-SD
Stack
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
getty@tty1.service loaded active running Getty on tty1
...
...
...
systemd-udevd.service loaded active running udev Kernel Device Manager
systemd-update-utmp.service loaded active exited Update UTMP about System Reboot
/Shutdown
systemd-user-sessions.service loaded active exited Permit User Sessions
systemd-vconsole-setup.service loaded active exited Setup Virtual Console
tuned.service loaded active running Dynamic System Tuning Daemon
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit
type
.
39 loaded
units
listed. Pass --all to see loaded but inactive
units
, too.
To show all installed unit files use
'systemctl list-unit-files'
.
# 显示所有服务
[root@vdevops ~]
# systemctl list-unit-files -t service
UNIT FILE STATE
auditd.service enabled
autovt@.service disabled
avahi-daemon.service enabled
blk-availability.service disabled
brandbot.service static
...
...
...
systemd-user-sessions.service static
systemd-vconsole-setup.service static
teamd@.service static
tuned.service enabled
wpa_supplicant.service disabled
125 unit files listed.
|
[2]、设置停止启动自动的服务 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@vdevops ~]
# systemctl stop postfix #停止服务
[root@vdevops ~]
# systemctl disable postfix
Removed
symlink
/etc/systemd/system/multi-user
.target.wants
/postfix
.service.
[root@vdevops ~]
# systemctl start postfix
[root@vdevops ~]
# systemctl enable postfix
Created
symlink
from
/etc/systemd/system/multi-user
.target.wants
/postfix
.service to
/usr/lib/systemd/system/postfix
.service.
[root@vdevops ~]
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (
/usr/lib/systemd/system/postfix
.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2016-10-26 18:40:35 CST; 15s ago
Main PID: 10071 (master)
CGroup:
/system
.slice
/postfix
.service
├─10071
/usr/libexec/postfix/master
-w
├─10072 pickup -l -t unix -u
└─10073 qmgr -l -t unix -u
Oct 26 18:40:35 vdevops.com postfix[9999]:
/usr/sbin/postconf
: warning: inet_protocols: disabling IPv6 name
/address
support: Address ...rotocol
Oct 26 18:40:35 vdevops.com postfix[9999]:
/usr/sbin/postconf
: warning: inet_protocols: disabling IPv6 name
/address
support: Address ...rotocol
Oct 26 18:40:35 vdevops.com postfix[9999]: postsuper: warning: inet_protocols: disabling IPv6 name
/address
support: Address family no...rotocol
Oct 26 18:40:35 vdevops.com postfix[9999]:
/usr/sbin/postconf
: warning: inet_protocols: disabling IPv6 name
/address
support: Address ...rotocol
Oct 26 18:40:35 vdevops.com postfix
/master
[10071]: warning: inet_protocols: disabling IPv6 name
/address
support: Address family not s...rotocol
Oct 26 18:40:35 vdevops.com postfix
/master
[10071]: warning: inet_protocols: disabling IPv6 name
/address
support: Address family not s...rotocol
Oct 26 18:40:35 vdevops.com postfix
/master
[10071]: daemon started -- version 2.10.1, configuration
/etc/postfix
Oct 26 18:40:35 vdevops.com systemd[1]: Started Postfix Mail Transport Agent.
Oct 26 18:40:35 vdevops.com postfix
/qmgr
[10073]: warning: inet_protocols: disabling IPv6 name
/address
support: Address family not sup...rotocol
Oct 26 18:40:35 vdevops.com postfix
/pickup
[10072]: warning: inet_protocols: disabling IPv6 name
/address
support: Address family not s...rotocol
Hint: Some lines were ellipsized, use -l to show
in
full.
|
[3]、还有一些SysV服务。它们由chkconfig控制,如下所示 。
1
2
3
4
5
6
7
8
9
|
[root@vdevops ~]
# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use
'systemctl list-unit-files'
.
To see services enabled on particular target use
'systemctl list-dependencies [target]'
.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
5、更新系统添加其他源 。
1
|
yum update -y
|
添加其它源 。
添加一些有用的外部存储库来安装有用的软件 。
【1】安装插件以向每个安装的存储库添加优先级.
1
2
3
|
[root@vdevops ~]
# yum -y install yum-plugin-priorities
# 设置官方源的优先级为[priority=1]
[root@vdevops ~]
# sed -i -e "s/\]$/\]\npriority=1/g" /etc/yum.repos.d/CentOS-Base.repo
|
【2】添加从Fedora项目提供的EPEL存储库 。
1
2
3
4
5
6
7
|
[root@vdevops ~]
# yum -y install epel-release
# 设置优先级[priority=5]
[root@vdevops ~]
# sed -i -e "s/\]$/\]\npriority=5/g" /etc/yum.repos.d/epel.repo
# 可以通过设置enabled=0,来控制安装软件包时使用相应的源
[root@vdevops ~]
# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
# 如果[enabled=0], 使用下面命令安装软件包
[root@vdevops ~]
# yum --enablerepo=epel install [Package]
|
【3】添加CentOS SCLo软件集合存储库.
1
2
3
4
5
6
7
8
9
10
|
[root@vdevops ~]
# yum -y install centos-release-scl-rh centos-release-scl
# 设置优先级[priority=10]
[root@vdevops ~]
# sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo
[root@vdevops ~]
# sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
# 设置 [enabled=0]
[root@vdevops ~]
# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo
[root@vdevops ~]
# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
# 设置[enabled=0], 通过下面命令使用相应源
[root@vdevops ~]
# yum --enablerepo=centos-sclo-rh install [Package]
[root@vdevops ~]
# yum --enablerepo=centos-sclo-sclo install [Package]
|
【4】添加Remi的RPM存储库,它提供了许多有用的包 。
1
2
3
|
[root@vdevops ~]
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# 设置优先级 [priority=10]
[root@vdevops ~]
# sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/remi-safe.repo
|
6、配置特色的vim 。
【1】安装vim 。
1
|
[root@vdevops ~]
# yum -y install vim-enhanced
|
【2】设置别名 。
设置命令别名。 (适用于以下所有用户,如果您申请某个用户,请在“〜/ .bashrc”中写入相同的设置) 。
1
2
3
4
|
[root@dlp ~]
# vi /etc/profile
# 在最后添加下面一行内容
alias
vi
=
'vim'
[root@dlp ~]
# source /etc/profile #重载
|
或者 。
echo "alias vi='vim'" >> /etc/profile && source /etc/profile 。
【3】配置vim,针对所有用户生效修改/etc/vimrc,针对特定用户生效修改~/.vimrc 。
主要用语法高亮,插件使用,自动缩进等功能,本文不做详细操作,后续会专门写一篇关于优化vim使用的博文,工欲善其事必先利其器 。
7、设置sudo 。
配置sudo以区分用户的职责,如果一些人共享权限,必手动安装sudo,因为它默认安装,即使“最小安装” 。
【1】设置普通用户拥有root的所有权限 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@vdevops ~]
# visudo
# 添加下面一行,使用户“wang”拥有root的所有权限
wang ALL=(ALL) ALL
# 普通用户使用root命令
# 确保用户为 'wang'
[wang@vdevops ~]$
/usr/bin/cat
/etc/shadow
cat
:
/etc/shadow
: Permission denied
# denied normally
[wang@vdevops ~]$
sudo
/usr/bin/cat
/etc/shadow
[
sudo
] password
for
cent:
# own password
daemon:*:16231:0:99999:7:::
adm:*:16231:0:99999:7:::
lp:*:16231:0:99999:7:::
...
...
# 输入wang的密码可以看到执行结果
|
【2】设置用户不能执行危险命令 。
1
2
3
4
5
6
7
8
|
[root@vdevops ~]
# visudo
# 49行: 定义别名SHUTDOWN
Cmnd_Alias SHUTDOWN =
/sbin/halt
,
/sbin/shutdown
,
/sbin/poweroff
,
/sbin/reboot
,
/sbin/init
# 设置用户wang不能执行别名SHUTDOWN对应的命令
wang ALL=(ALL) ALL, !SHUTDOWN
# 确保用户为'wang'
[wang@vdevops ~]$
sudo
/sbin/shutdown
-r now
Sorry, user cent is not allowed to execute
'/sbin/shutdown -r now'
as root on vdevops.com.
# denied normally
|
【3】创建一个特殊的组,组用户可以执行部分root命令 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@vdevops ~]
# visudo
# 51行: 为管理用户的几个命令设置别名为USERMGR
Cmnd_Alias USERMGR =
/usr/sbin/useradd
,
/usr/sbin/userdel
,
/usr/sbin/usermod
,
/usr/bin/passwd
# 最后一行添加
%usermgr ALL=(ALL) USERMGR
[root@vdevops ~]
# groupadd usermgr
[root@vdevops ~]
# usermod -G usermgr wang
# 确保用户为wang
[wang@vdevops ~]$
sudo
/usr/sbin/useradd
testuser
#输入用户wang的密码,查看创建结果,显示成功
[wang@vdevops ~]$
sudo
/usr/bin/passwd
testuser
Changing password
for
user testuser.
New UNIX password:
Retype new UNIX password:
passwd
: all authentication tokens updated successfully.
|
【4】设置sudo日志 。
sudo的日志保存在/ var / log / secure中,但它中有很多种类的日志。如果你想保持只有sudo的日志在一个文件,设置如下:
1
2
3
4
5
6
7
8
9
10
|
[root@vdevops ~]
# visudo
# 最后一行添加
Defaults syslog=local1
[root@vdevops ~]
# vi /etc/rsyslog.conf
# 在54行修改,添加<span style="color:#FF6666;">local1.none</span>
*.info;mail.none;authpriv.none;
cron
.none;<span style=
"color:#FF6666;"
>local1.none<
/span
>
/var/log/messages
# 添加下面一行内容
local1.*
/var/log/sudo
.log
[root@vdevops ~]
# systemctl restart rsyslog #重启rsyslog服务
|
以上所述是小编给大家介绍的CentOS 7安装完成后初始化的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。
原文链接:http://blog.csdn.net/wh211212/article/details/52923673 。
最后此篇关于CentOS 7安装完成后初始化的方法的文章就讲到这里了,如果你想了解更多关于CentOS 7安装完成后初始化的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!