NIS & Kerberos配置
NIS & Kerberos配置
所需RPM包列表:
krb5-server-1.10.3-42.el6.x86_64.rpm
krb5-workstation-1.10.3-42.el6.x86_64.rpm
krb5-devel-1.10.3-42.el6.x86_64.rpm
ypserv-2.19-26.el6_4.2.x86_64.rpm
ypbind-1.20.4-31.el6.x86_64.rpm
yp-tools-2.9-12.el6.x86_64.rpm
机器列表:
192.168.217.111 bs001.zx.nicx.cn
192.168.217.112 bs002.zx.nicx.cn
192.168.217.113 bs003.zx.nicx.cn
/etc/hosts 中需要进行以上配置,localhost需要带上
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
注:正文中以bs00x代表bs00x.zx.nicx.cn机器
服务角色分类
序号 |
IP |
HOST |
NIS |
KDC |
AppServer |
Client |
1 |
192.168.217.111 |
bs001.zx.nicx.cn |
TRUE |
TRUE |
||
2 |
192.168.217.112 |
bs002.zx.nicx.cn |
TRUE |
TRUE |
||
3 |
192.168.217.113 |
bs003.zx.nicx.cn |
TRUE |
TRUE |
配置NIS服务
集群机器时间需要保持一致
bs001为NIS服务器,NIS域为ZX.NICX.CN
为了不必要的麻烦,nis域必须大写,小写的话我的kadmind进程启动失败,不知是不是巧合
bs001上执行如下操作:
yum -y install ypserv
NIS依赖rpc协议,需要启动portmap服务
service portmap restart(前提:cp /etc/init.d/rpcbind /etc/init.d/portmap)
或者 /etc/init.d/rpcbind restart
并且将portmap服务设为开机启动
chkconfig portmap on
用rpcinfo -p localhost 查看是否启动成功和本机所有的rpc服务
也可以rpcinfo -p hostname(IP)查看对应主机的所有rpc服务
(如果rpcinfo -p 查看其它主机的rpc服务失败,关闭防火墙)
配置NIS domain
tail -n 1 /etc/sysconfig/network
NISDOMAIN=ZX.NICX.CN
配置nisdomainname临时生效命令
nisdomainname ZX.NICX.CN
可以用nisdomainname命令查看本机所属的domain
启动ypserv服务
并且设为开机启动
service ypserv restart
chkconfig ypserv on
创建NIS数据库,并且添加对应主机,如下:
[root@bs001 ~]# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. bs001.zx.nicx.cn is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: bs001.zx.nicx.cn
next host to add:
The current list of NIS servers looks like this:
bs001.zx.nicx.cn
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/ZX.NICX.CN/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/ZX.NICX.CN'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/ZX.NICX.CN'
bs001.zx.nicx.cn has been set up as a NIS master server.
Now you can run ypinit -s bs001.zx.nicx.cn on all slave server.
数据库的位置在/var/yp/ ZX.NICX.CN目录下
bs002上执行如下操作
yum -y yp-tools
启动ypbind服务
/etc/init.d/ypbind start
验证NIS服务器上的账户密码
ypcat -d ZX.NICX.CN -h bs001.zx.nicx.cn passwd
[root@bs002 ~]# ypcat -d ZX.NICX.CN -h bs001.zx.nicx.cn passwd
baoshan:$1$x2LXJfgm$pyfEXYFxY9FkUfrfbNG6f0:500:500:baoshan:/home/baoshan:/bin/bash
当然也可以验证hosts、group等信息
bs001上执行如下操作:
例如建立一个账户zzh
useradd zzh
passwd zzh
[root@bs001 ~]# make -C /var/yp/ === cd /var/yp 然后 make
make: Entering directory `/var/yp'
gmake[1]: Entering directory `/var/yp/ZX.NICX.CN'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
gmake[1]: Leaving directory `/var/yp/ZX.NICX.CN'
make: Leaving directory `/var/yp'
新建账户之后,务必重启ypserv服务【service ypserv restart】
不然后续kerberos验证不通过
bs002上执行如下操作:
ypcat -d ZX.NICX.CN -h bs001.zx.nicx.cn passwd
[root@bs002 ~]# ypcat -d ZX.NICX.CN -h bs001.zx.nicx.cn passwd
zzh:$1$g8GlVSWY$rOFvRr0eHpQuQbdqXUCwH0:501:502::/home/zzh:/bin/bash
baoshan:$1$x2LXJfgm$pyfEXYFxY9FkUfrfbNG6f0:500:500:baoshan:/home/baoshan:/bin/bash
进行进一步简单化:
设置/etc/yp.conf
增加domain ZX.NICX.CN server bs001.zx.nicx.cn
[root@bs002 ~]# grep ^domain /etc/yp.conf
domain ZX.NICX.CN server bs001.zx.nicx.cn
执行/etc/init.d/ypbind restart
然后执行ycat passwd
[root@bs002 ~]# /etc/init.d/ypbind start
Starting NIS service: [ OK ]
Binding NIS service: [ OK ]
[root@bs002 ~]# ypcat passwd
zzh:$1$g8GlVSWY$rOFvRr0eHpQuQbdqXUCwH0:501:502::/home/zzh:/bin/bash
baoshan:$1$x2LXJfgm$pyfEXYFxY9FkUfrfbNG6f0:500:500:baoshan:/home/baoshan:/bin/bash
bs001上执行如下操作:
创建允许访问NIS服务器的主机列表,不出现在里面的不能访问NIS服务器。
cat /var/yp/securenets
先写掩码,再写IP或者网段,写法如下
255.255.255.255 192.168.217.111 只允许111机器访问NIS服务器
255.255.255.255 192.168.217.112 只允许112机器访问NIS服务器
255.255.255.255 192.168.217.113 只允许113机器访问NIS服务器
255.255.255.0 192.168.217.0 允许192.168.217.0网段的机器访问NIS服务器
重启生效 service ypserv restart
若/var/yp/securenets 不存在,则允许所有主机访问NIS服务器。
注:以上所有在bs002上执行的操作,均可以在bs001、bs002、bs003
配置Kerberos-KDC服务
集群机器时间需要保持一致
bs002上执行如下操作:
yum -y install krb5-server krb5-workstation
Kerberos配置文件1
cat /etc/krb5.conf
[libdefaults]
default_realm = ZX.NICX.CN #默认的领域
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
ZX.NICX.CN = {
kdc = bs002.zx.nicx.cn:88 #Kerberos服务器
admin_server = bs002.zx.nicx.cn:749 #管理主机
}
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[domain_realm] #kerberos members
bs002.zx.nicx.cn = ZX.NICX.CN
bs003.zx.nicx.cn = ZX.NICX.CN
.zx.nicx.cn = ZX.NICX.CN
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
validate = true #add
}
将/etc/krb5.conf传输到所有的客户端服务器。
scp /etc/krb5.conf bs001.zx.nicx.cn:/etc
scp /etc/krb5.conf bs003.zx.nicx.cn:/etc
Kerberos配置文件2
cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
EXAMPLE.COM = {
master_key_type = aes256-cts
default_principal_flags = +preauth #add
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
max_renewable_life = 10d # 涉及到是否能进行ticket的renwe必须配置。
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}
Kerberos配置文件3
cat /var/kerberos/krb5kdc/kadm5.acl
*/admin@ZX.NICX.CN * #管理员
生成Kerberos数据库
kdb5_util create -r ZX.NICX.CN -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'ZX.NICX.CN',
master key name 'K/M@ZX.NICX.CN'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:
启动Kerberos服务
[root@bs002 krb5kdc]# service krb5kdc start
Starting Kerberos 5 KDC: [ OK ]
[root@bs002 krb5kdc]# service kadmin start
Starting Kerberos 5 Admin Server: [ OK ]
端口分别为88和749
上述两个服务设置为开机启动。
chkconfig krb5kdc on
chkconfig kadmin on
之后执行kadmin.local命令进入Kerberos数据库
[root@bs002 ~]# kadmin.local
Authenticating as principal baoshan/admin@ZX.NICX.CN with password.
kadmin.local: listprincs
K/M@ZX.NICX.CN
kadmin/admin@ZX.NICX.CN
kadmin/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/changepw@ZX.NICX.CN
krbtgt/ZX.NICX.CN@ZX.NICX.CN
kadmin.local:
增加一个principle:
kadmin.local: addprinc root/admin@ZX.NICX.CN
WARNING: no policy specified for root/admin@ZX.NICX.CN; defaulting to no policy
Enter password for principal "root/admin@ZX.NICX.CN":
Re-enter password for principal "root/admin@ZX.NICX.CN":
Principal "root/admin@ZX.NICX.CN" created.
之后listprincs
K/M@ZX.NICX.CN
kadmin/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/changepw@ZX.NICX.CN
krbtgt/ZX.NICX.CN@ZX.NICX.CN
root/admin@ZX.NICX.CN
注:删除账号命令delprinc root/admin@ZX.NICX.CN
bs003上执行如下操作:
kadmin -p root/admin
[root@bs002 ~]# kadmin -p root/admin
Authenticating as principal root/admin with password.
Password for root/admin@ZX.NICX.CN:
kadmin: listprincs
K/M@ZX.NICX.CN
kadmin/admin@ZX.NICX.CN
kadmin/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/changepw@ZX.NICX.CN
krbtgt/ZX.NICX.CN@ZX.NICX.CN
root/admin@ZX.NICX.CN
配置Kerberos-AppServer服务
凡是通过Kerberos验证的都叫AppServer
ftp server ftp/hostname@BS001.ZX.NICX.CN
sshd host/hostname@BS001.ZX.NICX.CN
telnet host/hostname@BS001.ZX.NICX.CN
nfs nfs/hostname@BS001.ZX.NICX.CN
bs002上执行如下操作:
服务principle没有密码,用randkey,将密码写入到/etc/krb5.keytab文件中
kadmin.local: addprinc -randkey host/bs002.zx.nicx.cn@ZX.NICX.CN
WARNING: no policy specified for host/bs002.zx.nicx.cn@ZX.NICX.CN; defaulting to no policy
Principal "host/bs002.zx.nicx.cn@ZX.NICX.CN" created.
kadmin.local: listprincs
K/M@ZX.NICX.CN
host/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/admin@ZX.NICX.CN
kadmin/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/changepw@ZX.NICX.CN
krbtgt/ZX.NICX.CN@ZX.NICX.CN
root/admin@ZX.NICX.CN
kadmin.local: ktadd -k /etc/krb5.keytab host/bs002.zx.nicx.cn@ZX.NICX.CN
Entry for principal host/bs002.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs002.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs002.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type des3-cbc-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs002.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs002.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type des-hmac-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs002.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type des-cbc-md5 added to keytab WRFILE:/etc/krb5.keytab.
kadmin.local: addprinc zzh@ZX.NICX.CN
WARNING: no policy specified for zzh@ZX.NICX.CN; defaulting to no policy
Enter password for principal "zzh@ZX.NICX.CN":
Re-enter password for principal "zzh@ZX.NICX.CN":
Principal "zzh@ZX.NICX.CN" created.
kadmin.local: quit
[root@bs002 ~]# restorecon /etc/krb5.keytab
[root@bs002 ~]# ls -Zl /etc/krb5.keytab
-rw-------. 1 unconfined_u:object_r:krb5_keytab_t:s0 root root 436 Sep 23 07:05 /etc/krb5.keytab
bs003上执行如下操作:
[root@bs003 ~]# kadmin -p root/admin
Authenticating as principal root/admin with password.
Password for root/admin@ZX.NICX.CN:
kadmin: listprincs
K/M@ZX.NICX.CN
host/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/admin@ZX.NICX.CN
kadmin/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/changepw@ZX.NICX.CN
krbtgt/ZX.NICX.CN@ZX.NICX.CN
root/admin@ZX.NICX.CN
zzh@ZX.NICX.CN
kadmin: addprinc -randkey host/bs003.zx.nicx.cn@ZX.NICX.CN
WARNING: no policy specified for host/bs003.zx.nicx.cn@ZX.NICX.CN; defaulting to no policy
Principal "host/bs003.zx.nicx.cn@ZX.NICX.CN" created.
kadmin: listprincs
K/M@ZX.NICX.CN
host/bs002.zx.nicx.cn@ZX.NICX.CN
host/bs003.zx.nicx.cn@ZX.NICX.CN
kadmin/admin@ZX.NICX.CN
kadmin/bs002.zx.nicx.cn@ZX.NICX.CN
kadmin/changepw@ZX.NICX.CN
krbtgt/ZX.NICX.CN@ZX.NICX.CN
root/admin@ZX.NICX.CN
zzh@ZX.NICX.CN
kadmin: ktadd -k /etc/krb5.keytab host/bs003.zx.nicx.cn@ZX.NICX.CN
Entry for principal host/bs003.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs003.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs003.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type des3-cbc-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs003.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type arcfour-hmac added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs003.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type des-hmac-sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/bs003.zx.nicx.cn@ZX.NICX.CN with kvno 2, encryption type des-cbc-md5 added to keytab WRFILE:/etc/krb5.keytab.
kadmin: quit
启动bs001和bs002上的sshd服务
bs003上执行如下操作:
[root@bs003 ~]# kinit zzh
Password for zzh@ZX.NICX.CN:
[root@bs003 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: zzh@ZX.NICX.CN
Valid starting Expires Service principal
09/23/15 07:12:54 09/24/15 07:12:52 krbtgt/ZX.NICX.CN@ZX.NICX.CN
使用zzh账户登录bs002.zx.nicx.cn机器,不用输入密码
[root@bs003 ~]# ssh zzh@bs002.zx.nicx.cn
Could not chdir to home directory /home/zzh: No such file or directory
-bash-4.1$ hostname
bs002.zx.nicx.cn
将key毁掉,然后用zzh重新连接bs002.zx.nicx.cn
[root@bs003 ~]# kdestroy
[root@bs003 ~]# klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)
[root@bs003 ~]# ssh zzh@bs002.zx.nicx.cn
zzh@bs002.zx.nicx.cn's password: 此处需要输入密码
配置一下ssh服务器,实现互相登录不用输入密码。
bs003.zx.nicx.cn
man ssh_config
vim /etc/ssh/ssh_config
增加 GSSAPIDelegateCredentials yes
注:上述中在bs003上的操作,可以完全部署在bs001机器上。
部署完kerberos之后,需要在每台机器上进行网卡设置(机器数量规模小,各种角色混用,就可能不需要特定的设置nis+kerberos验证模式)
设置成nis+kerberos的验证模式
并且重启网卡 service network restart
至此可以用ssh进行验证是否是nis+kerberos的验证模式了
如果需要用主机名进行登录,例如baoshan@bs001 baoshan@bs002 baoshan@bs003,则需要更改一个配置
/etc/ssh/sshd_config 中的 GSSAPIAuthentication yes(操作系统的默认配置,不是手贱不会改这个地方)
当然以上是默认配置,奶奶的,之前经一同事介绍说,改了这个地方为GSSAPIAuthentication no后会使得登录变慢
结果为了这个配置,我足足郁闷了大半个周(现象是:ssh通过用户名@主机名的形式密码能登录,就是不能无密码登录)
原来原因在这里。。。
服务器端启用了GSSAPI。登陆的时候客户端需要对服务器端的IP地址进行反解析,如果服务器的IP地址没有配置PTR记录,那么就容易在这里卡住了。
附录:
Krb5.conf配置
KDC服务端和客户端需要配置一致。
cat /etc/krb5.conf
[libdefaults]
default_realm = ZX.NICX.CN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
ZX.NICX.CN = {
kdc = bs002.zx.nicx.cn:88
admin_server = bs002.zx.nicx.cn:749
}
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[domain_realm]
bs002.zx.nicx.cn = ZX.NICX.CN
bs003.zx.nicx.cn = ZX.NICX.CN
.zx.nicx.cn = BS001.ZX.NICX.CN
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
validate = true
}
kdc.conf配置
KDC服务端配置
cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
EXAMPLE.COM = {
master_key_type = aes256-cts
default_principal_flags = +preauth
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}
Kadm5.acl
KDC服务端配置
cat /var/kerberos/krb5kdc/kadm5.acl
*/admin@ZX.NICX.CN *
=======================================================================
踩过的坑如下:
1. nis域一定要用大写(建议,没有得出实地验证结论,但为了保险,还是要大写)
2. nis增加新的用户名之后,一定要重启ypserv服务,即:service ypserv restart
3. ssh的配置。如果需要用用户名@主机名的登录形式,则需要修改/etc/ssh/sshd_config 中的 GSSAPIAuthentication yes(默认配置,一般人不会遇到,但是我就遇到了。。。)
4. addprincipal 主机名必须是全名,不能是简称
addprinc -randkey host/bd018.sd.nicx.cn@SD.NICX.CN
ktadd -k /etc/krb5.keytab host/bd018.sd.nicx.cn@SD.NICX.CN
希望对需要的网友有所帮助。。。
吐血总结。。。
NIS & Kerberos配置的更多相关文章
- nis+kerberos 实现服务验证
1.NIS部分 1.1 简介 NIS(Network Information Service,or Yellow Page or YP) 网络信息服务,由sun公司开发并授权给unix供应商, ...
- HBase + Kerberos 配置示例(二)
接上篇<HBase + Kerberos配置示例(一)>,我们继续剩下的配置工作. 环境准备 Hadoop配置 Zookeeper配置 HBase配置 Java测试程序 环境准备 安装ha ...
- SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇, 最终的解决方案 验证。
SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇. 1,安装数据库,我就不多说安装,客户一定要注意. 我将参照以下实施例和账户. 2,建立DNS,假设没有DN ...
- NIS域配置详解
一.前期准备1.1 NIS 简介NIS,英文的全称是network information service,也叫yellow pages.在Linux中,NIS是一个基于RPC的client/serv ...
- HBase + Kerberos 配置示例(一)
用过hbase的朋友可能都有过这样的疑问,我写一个java client,好像就提供了zookeeper quorum地址就连上hbase了,那么是不是存在安全问题?的确是,如何解决?hbase中引入 ...
- CentOS6.4的NIS+NFS配置流程
NIS和NFS的架设请看我其他的专题日志,这边主要描述两者结合的命令流程 1.NFS上配置专门给NIS用户共享目录 /nishome/ 192.168.188.0/24(rw,sync,no_root ...
- kerberos 配置错误记录
服务端错误记录: 1.服务端在创建数据库的时候报如下错误: # kdb5_util -s -r HADOOP.HOME 错误提示:kdb5_util: Improper format of Kerbe ...
- flume集成kafka(kafka开启kerberos)配置
根据flume官网:当kafka涉及kerberos认证: 涉及两点配置,如下: 配置一:见下实例中红色部分 配置conf实例: [root@gz237-107 conf]# cat flume_sl ...
- Apache Hadoop配置Kerberos指南
通常,一个Hadoop集群的安全使用kerberos来进行保障.在启用Kerberos后,需要用户进行身份验证.用户通过验证后可以使用GRANT/REVOKE语句来进行基于角色的访问控制.本文介绍一下 ...
随机推荐
- STL之lambda表达式
一.简介 我们可以向一个算法传递任何类别的可调用对象.对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的.即,如果e是一个可调用的表达式,则我们可以编写代码e(args),其中ar ...
- 〖Linux〗Ubuntu13.10中打开键盘背光灯
刚刚从淘宝上买回一个带有Led背光的键盘(黑爵战神x5 背光升级版): 然后发现在Linux中背光灯并不亮,在Windows中就可以按下Scroll Lock键点亮: 在网上探索了一番,觉得应该可以使 ...
- SDUT 1157-小鼠迷宫问题(BFS&DFS)
小鼠迷宫问题 nid=24#time" title="C.C++.go.haskell.lua.pascal Time Limit1500ms Memory Limit 65536 ...
- HTTP报文01
#xiaodeng #HTTP报文01 #HTTP权威指南 45 报文向下游流动- 不管是请求报文还是响应报文,所有报文都会向下游流动. 所有报文的发送者都在接收者的上游. 报文的组成部分 对报文进行 ...
- Redis学习(4)-数据类型,string,hash
Redis数据类型: redis使用键值对保存数据 key:全部是字符串 value:五种数据类型:string,hash,List,Set,有序的Set集合. key命名:自定义,名字不要过长,否则 ...
- vs2010支持html5+css3
第一步. 先到微软官方下载一个 Microsoft Visual Studio 2010 sp1 . 给传送门:下载 下载到这个东东 ---
- Tomcat 签名认证配置简例
在项目的web.xml中增加 <security-constraint> <web-resource-collection> <web-resource-name> ...
- linux shutdown命令
shutdown [-t 秒] [-arkhncfF] 时间 [警告信息] 常用选项与参数: -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思 -k : 不要真的关机,只是发送警告信息出 ...
- 【WebKit内核 CEF3 】 第一篇:下载分支代码并本地编译
关于CEF Chromium Embedded Framework 简单说就是 WebKit内核的 对外绑定. 当前主流浏览器内核 一.Trident内核代表产品Internet Explorer ...
- 微软 Visual Studio 2017 中文正式版下载 – 免费社区版/专业版/企业版
作为“宇宙最强”的集成开发环境 IDE,微软的 Visual Studio 不仅破天荒发布了 macOS 版本,如今终于也推出了其 Windows 的最新版本—— VS 2017 正式版了.这对开发者 ...