首页 > 其他分享 >NIS(Network Information Services)服务端在R系部署,客户端rpm,deb简单使用

NIS(Network Information Services)服务端在R系部署,客户端rpm,deb简单使用

时间:2024-07-31 19:18:59浏览次数:15  
标签:Information grep Network IP HOSTNAME etc conf Services name

#!/bin/bash
###
 # @Author: ThreeFlower [email protected]
 # @Date: 2024-05-28 
 # @LastEditors: ThreeFlower [email protected]
 # @LastEditTime: 2024-07-19 
 # @FilePath: NIS-use.sh
 # @Description: NIS(Network Information Services)  source:https://www.thkukuk.de/nis/sources/
### 

# env firewall down 防火墙已关

#设置NIS域名,服务端主机上设置:
name_nisdoamin='www.xxx.com'
export NISDOMAIN="${name_nisdoamin}"

#新建的用户设置的密码
password='Abc@123456'
#NIS服务器IP,后续自行修改
HOSTNAME_IP="$(hostname --all-ip-addresses | awk '{print $1}')"
##NIS服务器IP允许访问网段,后续自行修改
# local_net='192.168.200.0/24'

# server 服务端
## server rpm   *
yum install -y ypserv rpcbind
### 设置NIS域名:       *   
nisdomainname "${name_nisdoamin}"
#NIS域名可以简单用主机名代替下
hostnamectl set-hostname --static "${name_nisdoamin}"

#将域名修改写入/etc/sysconfig/netwrok文件   *
grep NISDOMAIN="${name_nisdoamin}" /etc/sysconfig/network ||echo NISDOMAIN="${name_nisdoamin}" >>  /etc/sysconfig/network
### 在/etc/hosts中进行域名解析      *
#判断全集,grep 与 判断IP和HOSTNAME在/etc/hosts里没->判断部分子集IP在,sed同行追加;&& 判断全集,grep 与 判断IP和HOSTNAME在/etc/hosts里没->判断空集都不在,最后不行再追加
grep "${HOSTNAME_IP}" /etc/hosts | grep "${name_nisdoamin}" || sed -i 's/^\([[:space:]]*\)'''"${HOSTNAME_IP}"'''[[:space:]]\+\(.*\)/\1'''"${HOSTNAME_IP}"''' \2 '''"${name_nisdoamin}"'''/g' /etc/hosts && grep "${HOSTNAME_IP}" /etc/hosts | grep "${name_nisdoamin}" || echo "${HOSTNAME_IP} ${name_nisdoamin}" >> /etc/hosts

### 设置NIS服务主要配置文件/etc/ypserv.conf     *
### 其他条件默认即可需要修改可以参考https://www.thkukuk.de/nis/,追加些允许访问的地址
# 添加规则,格式为:机名/IP:NIS域名:可用数据库名称:安全限制
# 127.0.0.0/255.255.255.0     : * : * : none  ##开放内部接口
# 192.168.1.0/255.255.255.0 : * : * : none  ##开放局域网
# *                           : * : * : deny  ##其他拒绝
# *              : *      : shadow.byname    : port
# *              : *      : passwd.adjunct.byname : port
# echo "${local_net}  :*:*:none" >> /etc/ypserv.conf
grep '*  :*:*:none' /etc/ypserv.conf || echo "*  :*:*:none" >> /etc/ypserv.conf

### 启动服务与设置为开机启动
systemctl start ypserv
systemctl start rpcbind
systemctl start yppasswdd.service
systemctl enable ypserv
systemctl enable rpcbind
systemctl enable yppasswdd.service

### 建立NIS帐户
for i in `seq 1 5`;do
    echo "=====create nisuser$i=====";
    useradd -u 100$i nisuser$i;
    echo "${password}" | passwd --stdin nisuser$i;
done

### 建立NIS资料库
/usr/lib64/yp/ypinit -m  ##交互式操作,取默认选项,却啥文件touch创建即可,如需在touch中添加配置自行添加,执行完后,数据会存放在/var/yp/"$nisdomainname"中

#### if 新增帐户与修改帐户信息时,需要重新更新数据库
make -C /var/yp
#### if 修改密码时,需对档案进行更新
make -C /var/yp passwd

## server deb


#####以下是客户端配置,去客户端机器上搞,需要就从选一整段取消下注释
# ------------------------------------------------------------------------
# # client 客户端
# ## rpm

# #NIS服务器域名,可以暂时用hostname代替
# name_nisdoamin="www.xxx.com"
# export NISDOMAIN="${name_nisdoamin}"
# #NIS服务器IP,自行填写
# HOSTNAME_IP=""

# ### 安装client包        *
# yum install -y ypbind rpcbind
# ### /etc/hosts  域名解析        *
# #判断全集,grep 与 判断IP和HOSTNAME在/etc/hosts里没->判断部分子集IP在,sed同行追加;&& 判断全集,grep 与 判断IP和HOSTNAME在/etc/hosts里没->判断空集都不在,最后不行再追加
# grep "${HOSTNAME_IP}" /etc/hosts | grep "${name_nisdoamin}" || sed -i 's/^\([[:space:]]*\)'''"${HOSTNAME_IP}"'''[[:space:]]\+\(.*\)/\1'''"${HOSTNAME_IP}"''' \2 '''"${name_nisdoamin}"'''/g' /etc/hosts && grep "${HOSTNAME_IP}" /etc/hosts | grep "${name_nisdoamin}" || echo "${HOSTNAME_IP} ${name_nisdoamin}" >> /etc/hosts

# ### /etc/yp.conf 指定NIS服务器      *
# # 强制格式: domain xxxx server xxxx 
# sed -i 's/^[[:space:]]*domain[[:space:]]\+\(.*\)[[:space:]]\+server[[:space:]]\+\(.*\)/domain '''"${name_nisdoamin}"''' server '''"${HOSTNAME_IP}"'''/g'  /etc/yp.conf && grep "^[[:space:]]*domain[[:space:]]\+${name_nisdoamin}[[:space:]]\+server[[:space:]]\+${HOSTNAME_IP}[[:space:]]*" /etc/yp.conf || echo "domain ${name_nisdoamin} server  ${HOSTNAME_IP} " >> /etc/yp.conf
# ### /etc/nsswitch.conf 帐号密码查询顺序,添加查询之后可su切换yptest获取到的用户,例如:        *
# # /etc/nsswitch.conf 帐号密码查询顺序
# # passwd:    files nis sss
# # shadow:    files nis sss
# # group:     files nis sss
# # …
# # hosts:      files nis dns
# grep "^passwd"  /etc/nsswitch.conf | grep nis || sed -i '/^passwd/ s/$/ nis/g' /etc/nsswitch.conf
# grep "^shadow"  /etc/nsswitch.conf | grep nis || sed -i '/^shadow/ s/$/ nis/g' /etc/nsswitch.conf
# grep "^group"  /etc/nsswitch.conf | grep nis || sed -i '/^group/ s/$/ nis/g' /etc/nsswitch.conf

# ### 启动及开机启动      *
# systemctl start rpcbind
# systemctl start ypbind
# systemctl enalbe rpcbind
# systemctl enable ypbind
# ###验证 进行连接测试,可获取到NIS服务已添加到数据库中的用户
# yptest ##有错误会返回结果,某些错误可以忽略
# ###验证 切换NIS中用户(客户端主机不需要手动添加yptest用户)测试
# su nisuser1

##---------------------
## deb 客户端
#NIS服务器域名,可以暂时用hostname代替
name_nisdoamin="www.xxx.com"
export NISDOMAIN="${name_nisdoamin}"
#NIS服务器IP,自行填写
HOSTNAME_IP=""

### /etc/hosts  域名解析        *
#判断全集,grep 与 判断IP和HOSTNAME在/etc/hosts里没->判断部分子集IP在,sed同行追加;&& 判断全集,grep 与 判断IP和HOSTNAME在/etc/hosts里没->判断空集都不在,最后不行再追加
grep "${HOSTNAME_IP}" /etc/hosts | grep "${name_nisdoamin}" || sed -i 's/^\([[:space:]]*\)'''"${HOSTNAME_IP}"'''[[:space:]]\+\(.*\)/\1'''"${HOSTNAME_IP}"''' \2 '''"${name_nisdoamin}"'''/g' /etc/hosts && grep "${HOSTNAME_IP}" /etc/hosts | grep "${name_nisdoamin}" || echo "${HOSTNAME_IP} ${name_nisdoamin}" >> /etc/hosts


sudo apt install -y rpcbind nis        #安装时会要求配置NIS服务器的域名,后续可在/etc/defaultdoam修改,nis安装肯定报错,需要修改 /etc/hosts,/etc/yp.conf,/etc/nsswitch.conf,再启ypbind,再重新apt install nis

### /etc/yp.conf 指定NIS服务器      *
# 强制格式: domain xxxx server xxxx 
sed -i 's/^[[:space:]]*domain[[:space:]]\+\(.*\)[[:space:]]\+server[[:space:]]\+\(.*\)/domain '''"${name_nisdoamin}"''' server '''"${HOSTNAME_IP}"'''/g'  /etc/yp.conf && grep "^[[:space:]]*domain[[:space:]]\+${name_nisdoamin}[[:space:]]\+server[[:space:]]\+${HOSTNAME_IP}[[:space:]]*" /etc/yp.conf || echo "domain ${name_nisdoamin} server  ${HOSTNAME_IP} " >> /etc/yp.conf
### /etc/nsswitch.conf 帐号密码查询顺序,添加查询之后可su切换yptest获取到的用户,例如:        *
# /etc/nsswitch.conf 帐号密码查询顺序
# passwd:    files nis sss
# shadow:    files nis sss
# group:     files nis sss
# …
# hosts:      files nis dns
grep "^passwd"  /etc/nsswitch.conf | grep nis || sed -i '/^passwd/ s/$/ nis/g' /etc/nsswitch.conf
grep "^shadow"  /etc/nsswitch.conf | grep nis || sed -i '/^shadow/ s/$/ nis/g' /etc/nsswitch.conf
grep "^group"  /etc/nsswitch.conf | grep nis || sed -i '/^group/ s/$/ nis/g' /etc/nsswitch.conf

#/etc/defaultdomain
echo "${name_nisdoamin}"  > /etc/defaultdomain


### 启动及开机启动      *
systemctl start rpcbind
systemctl start ypbind
systemctl enalbe rpcbind
systemctl enable ypbind
###验证 进行连接测试,可获取到NIS服务已添加到数据库中的用户
yptest ##有错误会返回结果,某些错误可以忽略
###验证 切换NIS中用户(客户端主机不需要手动添加yptest用户)测试
su nisuser1



#########清除/etc/nsswitch.conf中的nis ,可取消之前添加的帐号密码查询顺序,取消获取的用户信息

#########systemctl stop ypbind,注释/etc/yp.conf可停止客户端服务

标签:Information,grep,Network,IP,HOSTNAME,etc,conf,Services,name
From: https://www.cnblogs.com/users1367067573/p/18335277

相关文章

  • DC综合时set_ideal_network -no_propagate
    在DesignCompiler(DC)综合过程中,set_ideal_network命令用于指定理想网络(idealnetwork),这些网络通常不会被综合工具修改。这些网络的延迟和负载被忽略,从而简化了综合过程。举例set_ideal_network-no_propagate[all_high_fanout-nets-threshold256] set_ideal_ne......
  • 在 NetworkX 中实现混合过滤波束搜索
    我正在尝试使用NetworkX实现混合滤波波束搜索算法来查找有向图中的最佳路径。目标是计算状态转换并使用波束搜索来找到最佳轨迹(sigma)。但是,我遇到了几个问题,例如执行期间的无限循环和类型错误。输入:E:轨迹或游览。C:成本矩阵(计算出的图的距离矩阵)).......
  • Flutter网络错误全解析:当“A network error occurred“遇上“https://maven.google.co
    摘要:在Flutter开发过程中,我们经常需要从远程仓库获取依赖包,而https://maven.google.com/是Flutter依赖的主要来源之一。然而,开发者可能会遇到"Anetworkerroroccurredwhilechecking‘https://maven.google.com/’"的错误提示。本文将从资深Flutter开发专家的角度出发,......
  • SQL注入基础之information_schema
    1.information_schema概述在SQL注入攻击中,information_schema数据库是MySQL自带的一个特殊数据库,它提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名、表名、列的数据类型、访问权限等。2.information_schema中的常用表1.schemate描述:提供了当前MySQL实例......
  • Microsoft.CognitiveServices.Speech.extension.embedded.sr.dll文件丢失导致程序无法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个Microsoft.CognitiveServices.Speech.extens......
  • 如何强制某些节点在networkX中具有特定颜色
    我想要为networkx图的节点着色,但我也希望能够强制一组节点为特定颜色,同时仍然能够正确地为图中的所有节点着色。有谁知道如何做到这一点?可以通过将color属性传递给nx.draw函数,以将特定节点强制为特定颜色,同时仍然能够正确地为图形中的所有节点着色。......
  • Python win32serviceutil QueryServiceStatus:返回值是什么意思?
    我正在学习使用pywin32,并尝试在64位Python3.6.4上使用win32serviceutil模块以下代码:importwin32serviceutilasserviceserviceStatus=service.QueryServiceStatus("WinDefend")print(serviceStatus)返回以下元组:(16,4,197,0,0,0,0)我对wind......
  • Cisco Identity Services Engine (ISE) 3.3 Patch 3 - 基于身份的网络访问控制和策略
    CiscoIdentityServicesEngine(ISE)3.3Patch3-基于身份的网络访问控制和策略实施系统思科身份服务引擎(ISE)-下一代NAC解决方案请访问原文链接:https://sysin.org/blog/cisco-ise-3/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCisco现已发布ISE3.......
  • 题解:AT_arc116_e [ARC116E] Spread of Information
    题目链接思路看到最大值最小首先可以想到二分,发现答案具有单调性,那么思考如何在\(O(n)\)的时间内判断是否合法。考虑贪心,在最远没覆盖的点的距离和要判断的\(mid\)刚好相等的时侯再选择一定不劣,因为这样覆盖的点最多,那么从叶子节点向上回溯,处理它的所有儿子,判断是否选择该......
  • AT_arc116_e [ARC116E] Spread of Information 题解
    题目传送门前置知识二分答案|树形DP解法答案显然具有单调性,考虑二分答案。设当前二分出的答案为\(mid\),则等价于覆盖距离为\(mid\)的情况下进行选点。做法同luoguP3942将军令,考虑进行贪心,对于深度最深的叶节点将选择的点放在边界时,即取\(mid\)级祖先时,覆盖的范......