什么是NIS服务

什么是NIS服务,第1张

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

请介绍一下NIS服务。

解析:

网络信息服务(NIS)

(Neork Information Service)

NIS是集中控制几个系统管理数据库的网络用品。NIS简化了UNIX和LINUX桌面客户的管理工作,客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd,他们只简单的使用维护在NIS服务器的文件即可。
提到NIS不得不先说明一下WINDOWS2000的域控制器,在局域网内有一台WIN2000域控制器,下面有一些机器加入到这个域中,在下的机器登录时,有一个选项是选择登入到本机还时登入到域内,登入本地的密码有本机控制,但是如果登入域内,密码支有域控制器负责管理。

LINUX也是 *** 作系统,跟WIN2000没有本质的区别,所以仔细读上段话,就能理解NIS是原理是什么样了,这时出现了一个重要的文件/etc/nsswitchconf

NIS是一个客户机/服务器系统,ypbind是定义NIS服务器的客户端进程。一旦确定了服务器位置,客户机绑定到了服务器上,所以客户端的住处查询都发往服务器。ypserv是回答客户端查询的服务器进程。

为vsftpd 建立虚拟用户
ftp 2009-07-21 16:07:34 阅读155 评论0 字号:大中小 订阅
Linux的FTP服务支持3种用户:
1匿名帐户
2本地帐户
3虚拟用户
为什么要使用虚拟用户:
匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来实现 但是,本地帐户默认情况下是可以登陆Linux系统的,这样对Linux系统来说是一个安全隐患那么怎么能在灵活的赋予FTP用户权限的前提下,保证 FTP服务器乃至整个Linux系统的安全呢使用虚拟用户就是一种解决办法
下面,我们就一起来学习,该怎样在Linux下配置FTP服务器的虚拟用户
开始配置前,让我们先大概了解下FTP虚拟用户的工作原理:
虚拟用户,顾名思义,并不是一个合法的Linux系统帐户,但是他可以用来登陆该系统上运行的FTP服务器
当用户在连接上FTP服务器后,会被要求输入用户名和密码FTP服务器在拿到这个用户名和密码后,会调用相应的PAM认证模块对,和系统中的FTP认证文件进行相比较如果该用户名和密码与FTP认证文件中的某条记录相符,就通过认证,然后该帐户就被映射成一个Linux下的本地帐户,然后根据使用该本地帐户对FTP资源进行访问否则则断开该连接请求
了解了FTP虚拟用户的工作原理后,我们就可以开始配置FTP虚拟用户了
整个过程可以分这几个步骤:
1准备一个虚拟用户的口令库文件该文件中保存的用户名和密码是用户连接FTP服务器时,需要输入的用户名和密码文件可以自己创建,位置无关紧要,文件格式为:奇数行为用户名,偶数行为密码
例如:touch logintxt //创建一个名为logintxt的虚拟用户口令库文件
vi logintxt //编辑该口令库文件
mike //虚拟用户mike
123 //虚拟用户mike的密码
john //虚拟用户john
321 //虚拟用户john的密码
保存退出
2用刚才建立的虚拟用户口令库文件生成FTP服务器的认证文件该认证文件是一个被加密后的密文PAM在调用相应的认证模块后,会对从FTP服务器发来的用户名和密码进行加密,然后在跟该文件进行对比,发现相符条目后,登陆用户才会被允许登陆
db_load -T -t hash -f logintxt /etc/vsftpd/vsftpd_logindb
//在运行该命令前,别忘记安装db4-utils软件包,该包包含有db_load命令等关于该命令的使用不在本文讨论范围内其中-f参数后跟的为刚才创建的虚拟用户口令库文件最后的路径为生成的FTP认证文件的存放位置
为了进一步保证安全,可以将该FTP认证文件的权限设置为600
3建立虚拟用户所需要的PAM配置文件由于FTP服务器在接受到用户的用户名和口令后会调用PAM认证,所以我们还要创建虚拟用户的PAM配置文件
我们将该文件保存在/etc/pamd目录下,文件名暂时取为:vsftpd这里要注意一点就是,该文件名要与FTP服务主配置文件(/etc/vsftpd/vsftpdconf)中的pam_service_name=vsftpd选项的选项值相同
创建好该文件后,将下面的内容加入到该文件中:
auth required /lib/security/pam_userdbso db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdbso db=/etc/vsftpd/vsftpd_login
改好后,保存退出(注意,/etc/pamd/vsftpd 这个文件只能有上面两行代码有效,其他内容请用#号注释掉)注意3个红色文件的文件名该3个文件为1个文件,只不过在使用中写法不同
4由于用户在通过PAM的认证后要被映射成一个本地用户,所以我们还要建立一个本地用户供虚拟用户使用
我们只需要对该本地用户赋予FTP主目录的适当访问权限就行即使FTP服务器遭到攻击,这个本地用户也没有访问其他目录的权限,相对比较安全一些
useradd -d /home/ftpsite virtual //用户名为virtual,主目录为FTP的根
chmod 700 /home/ftpsite //将其权限设置为700,可以根据实际情形进行修改
更正(ftp目录归属与被用于ftp的虚拟用户的情况下)
000(---------) 可切仅可登陆
500(r-x------) 可见文件列表,可下载,不可上传与ftp上不同名的文件,不可删除、改名、新建文件夹
700(rwx------) 可上传下载文件,可修改文件名,可删除文件,可建立文件夹,可移动文件(可做全部 *** 作)(vsftpd 配置许可的情况下)
5在FTP的主配置文件中,启用FTP虚拟用户增加如下选项即可:
guest_enable=YES
guest_username=virtual //将虚拟用户映射成本地的哪个用户这里用的是virtual,刚才建
立的那个用户
pam_service_name=/etc/vsftpd/vsftpd //切记要修改该项的值
6配置到这里就完成了,别忘记重启FTP服务进行测试
7为不同的虚拟用户分配权限
默认情况下,虚拟用户拥有相同的权限,就是virtual的权限,我们可以根据实际需求对不同的虚拟用户分配权限
首先在FTP的主配置文件中加一个选项:
user_config_dir=/etc/vsftpd_user_conf //文件名和路径都可以自己定义
然后创建该目录
mkdir /etc/vsftpd_user_conf
下面就可以在该目录下编辑不同虚拟用户的权限配置文件了,比如要对mike编辑其权限
touch mike //建立mike的权限文件文件名要与虚拟用户名相同
可以根据实际需求为该文件添加下面的选项和值:
anon_world_readable_only=NO //表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES //表示用户可以上传文件
anon_mkdir_write_enable=YES //表示用户有创建和删除目录的权限
anon_other_write_enable=YES //表示用户具有文件改名和删除文件的权限
另外:修改 /etc/selinux 文件夹下的 config 文件,SELINUX=enforcing 修改为 SELINUX=disabled
到这里,虚拟用户就算完成配置完成了
不过,有一个问题,好象在配置完虚拟用户后,不关FTP主配置文件里怎样配置,匿名用户和本地用户都不能登陆FTP服务器了该怎样解决这个问题呢
如果不能上传文件,如果其他配置都和上面一样,而且ftp主目录的权限设置为777都不能上传的话,则可能是防火墙的问题:
========= 以下转自:(>这个要看你的SVN服务器是怎么架设的,其中用户名管理机制是什么
SVN有多种用户名管理机制,其中最常用的是和Apache结合的管理机制,如果是这个机制的话,你查看一下Apache的>NIS有点类似于WINDOWS的domain,是一个集中身份管理的方式。在NIS服务器上建立各个用户,当计算机加入到NIS中时,便可以使用NIS域中的任何帐户登录这台计算机,如果多台Linux加入到一个NIS域,你可以用一个统一的账号登录和访问各个计算机,而不用在每台机器上都建立这样一个用户。
但是NIS域有个致命的缺点是,它是明文发送认证信息的,这使得这种机制的安全性很成问题。而windows域有很好的NTLM认证方式,所以至今WINDOWS域被广泛接受而 NIS基本无人使用。

AIX 下面新建用户的命令是:
#smitty mkuser 或者:
#smit mkuser
但新新用户会涉及到非常多的内容,以下内容供参考:
AIX 中的命令
请记住,本文讨论的命令和方法应该可以在配置文件中有本地用户和组的 AIX 系统上使用。如果系统处理来自远程源(例如 Network Information System,即 NIS)的用户和组,那么不应该使用 chuser 和 chgroup 等命令。
/etc/passwd
/etc/security/profile
/etc/security/limits
/etc/security/passwd
/etc/security/user
/usr/lib/security/mkuserdefault
/etc/passwd
/etc/passwd 文件包含用户的基本信息,它可能是 UNIX® 和 Linux® 用户最熟知的用户管理文件。清单 1 给出 /etc/passwd 文件的示例。
清单 1 /etc/passwd 文件示例
root:!:0:0::/:/usr/bin/ksh
daemon:!:1:1::/etc:
bin:!:2:2::/bin:
sys:!:3:3::/usr/sys:
adm:!:4:4::/var/adm:
uucp:!:5:5::/usr/lib/uucp:
guest:!:100:100::/home/guest:
nobody:!:4294967294:4294967294::/:
lpd:!:9:4294967294::/:
lp::11:11::/var/spool/lp:/bin/false
invscout::6:12::/var/adm/invscout:/usr/bin/ksh
snapp::200:13:snapp login user:/usr/sbin/snapp:/usr/sbin/snappd
ipsec::201:1::/etc/ipsec:/usr/bin/ksh
nuucp::7:5:uucp login user:/var/spool/uucppublic:/usr/sbin/uucp/uucico
pconsole::8:0::/var/adm/pconsole:/usr/bin/ksh
esaadmin::10:0::/var/esa:/usr/bin/ksh
sshd::206:201::/var/empty:/usr/bin/ksh
atc:!:8000:400:Adam Cormany,Sr UNIX Admin:/home/atc:/bin/ksh
amdc:!:8001:401:AMDC:/home/amdc:/bin/ksh
pac:!:8002:400:PAC,Jr UNIX Admin:/home/pac:/bin/ksh
atc2:!:8003:402:ATCv2:/home/atc2:/bin/ksh
可以看到这个文件使用冒号 (:) 作为分隔符,每个条目按以下格式包含 7 个字段(为了便于阅读,在分隔符前后添加了空格):
Username : Password Flag : UID : GID : GECOS : Home : Shell/Command
下面逐一解释这些字段:
Username。这是与用户账户相关联的登录名/用户名。
Password Flag。这个字段因 UNIX 和 Linux 的风格而异。在 AIX 上,第二个字段可以包含两个字符之一:! 或 。如果显示 !,那么已经为此用户设置了密码。如果还没有设置密码,就会出现 。密码本身存储在 /etc/security/passwd 中。
UID。User Identifier (UID) 是用户的数字标识符。
GID。Group Identifier (GID) 与 UID 相似,但是它与组相关联。GID 在 /etc/group 中定义。
GECOS。General Electric Comprehensive Operating System (GECOS) 信息存储在第五个字段中。这里存储用户的姓名、电话号码和其他一般个人信息。
Home。这是用户的主目录。
Shell/Command。通常情况下,最后一个字段包含在用户登录时启动的 shell。管理员也可以通过修改这个字段执行其他命令而不是 shell(例如 /bin/false),从而限制访问。
/etc/security/profile
/etc/security/profile 文件可以节省宝贵的时间和减少麻烦。在使用 mkuser 命令创建用户时,执行 /usr/lib/security/mkusersys 脚本。这个脚本创建用户的目录,设置正确的权限,“创建” 用户的 profile。mkusersys 脚本实际上是把 /etc/security/profile 文件复制到新用户的主目录中。
如果您正在构建新系统,或者一个新部门有 100 名员工需要在系统上建立账户,那么一定要先修改 /etc/security/profile 文件,然后再开始创建用户账户。如果已经创建了账户,然后意识到需要对某个变量或其他设置做简单的修改,就不得不手工修改每个用户的 profile。可以使用脚本简化这个过程,但是如果提前修改了 /etc/security/profile,会简单得多。
export PATH
if [ -s "$MAIL" ] # This is at Shell startup In normal
then echo "$MAILMSG" # operation, the Shell checks
fi # periodically
/etc/security/limits
/etc/security/limits 文件包含所有 ulimit,即用户的系统资源限制。表 1 列出 /etc/security/limits 文件中的字段及其用途。
表 1 /etc/security/limits 中的字段
软限制
硬限制
说明
fsize fsize_hard 用户可以创建的文件的大小
core core_hard 用户可以创建的核心文件的大小
cpu cpu_hard 允许的系统时间量
data data_hard 进程数据段的大小
stack stack_hard 进程堆栈段的大小
rss rss_hard 允许的物理内存量
nofiles nofiles_hard 同时打开的文件描述符数量
nproc nproc_hard 同时运行的进程数量
软限制和硬限制的区别是什么?在最大值(硬限制)范围内,用户或应用程序可以动态地修改软限制。硬限制 就是参数可以设置的最大值。如果把参数设置为数字值太困难(例如,如果开发人员不知道程序将使用的内存量或它需要打开的文件数量),那么可以把参数设置为 -1,这表示无限制。
但是,不必为每个用户设置所有 ulimit。/etc/security/limits 文件包含一个 default 部分,它为每个用户定义一组标准值,如果用户没有设置定制的值,就会使用这些值。如果 default 部分不存在,系统会设置预先确定的限制。
IBM 的默认值如下:
Attribute Value
========== ============
fsize_hard set to fsize
cpu_hard set to cpu
core_hard -1
data_hard -1
stack_hard 8388608
rss_hard -1
nofiles_hard -1
清单 3 给出一个 /etc/security/limits 文件示例。
清单 3 /etc/security/limits 文件示例
default:
fsize = 4194303
core = 16384
cpu = -1
data = 262144
rss = 65536
stack = 65536
pac:
fsize = 131072
fsize_hard = 262144
core = 262144
假设用户 “pac” 是一位初级 UNIX 管理员,他的软限制值 fsize 由 default 部分的 4,194,303 降低到 131,072;但是,允许他在需要时把这个值增加到 262,144。另外,pac 经常把自己的程序弄坏。因此,把他的 core ulimit 增加到 262,144。
/etc/security/passwd
/etc/security/passwd 文件包含 AIX 用户的密码信息。在这个文件中,每个用户有三个字段:
password。加密的密码。
注意:如果这个字段只包含星号 (),那么账户被锁定,直到设置密码为止。
lastupdate。最后一次更新密码的时间(系统纪元以来的秒数)。
flags。对修改用户密码的限制。可以设置三个标志:
ADMIN。如果设置,那么只有根用户可以修改用户的密码。
ADMCHG。如果设置,那么在用户下一次登录或执行 su 时提示修改密码。
NOCHECK。如果设置,那么忽略 /etc/security/user 中的任何其他限制。
清单 4 提供一个 /etc/security/password 文件示例。
清单 4 /etc/security/password 文件示例
amdc:
password = oBQaUkPkUryCY
lastupdate = 1243972006
flags = ADMCHG
在这个示例中,用户 “amdc” 的密码是在 2009 年 6 月 2 日星期二 15:46:46 EDT 设置的。当用户下一次登录或执行 su 时,会提示修改密码。

首先以root身份登录到MySQL服务器中。
$ mysql -u root -p
当验证提示出现的时候,输入MySQL的root帐号的密码。
创建一个MySQL用户
使用如下命令创建一个用户名和密码分别为"myuser"和"mypassword"的用户。
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
一旦用户被创建后,包括加密的密码、权限和资源限制在内的所有帐号细节都会被存储在一个名为user的表中,这个表则存在于mysql这个特殊的数据库里。
运行下列命令,验证帐号是否创建成功
mysql> SELECT host, user, password FROM mysqluser WHERE user='myuser';
赋予MySQL用户权限
一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何 *** 作。你得赋予用户必要的权限。以下是一些可用的权限:
ALL: 所有可用的权限
CREATE: 创建库、表和索引
LOCK_TABLES: 锁定表
ALTER: 修改表
DELETE: 删除表
INSERT: 插入表或列
SELECT: 检索表或列的数据
CREATE_VIEW: 创建视图
SHOW_DATABASES: 列出数据库
DROP: 删除库、表和视图
运行以下命令赋予"myuser"用户特定权限。
mysql> GRANT <privileges> ON <database><table> TO 'myuser'@'localhost';
以上命令中,<privileges> 代表着用逗号分隔的权限列表。如果你想要将权限赋予任意数据库(或表),那么使用星号()来代替数据库(或表)的名字。
例如,为所有数据库/表赋予 CREATE 和 INSERT 权限:
mysql> GRANT CREATE, INSERT ON TO 'myuser'@'localhost';
验证给用户赋予的全权限:
mysql> SHOW GRANTS FOR 'myuser'@'localhost';
将全部的权限赋予所有数据库/表:
mysql> GRANT ALL ON TO 'myuser'@'localhost';
你也可以将用户现有的权限删除。使用以下命令废除"myuser"帐号的现有权限:
mysql> REVOKE <privileges> ON <database><table> FROM 'myuser'@'localhost';
为用户添加资源限制
在MySQL中,你可以为单独的用户设置MySQL的资源使用限制。可用的资源限制如下:
MAX_QUERIES_PER_HOUR: 允许的每小时最大请求数量
MAX_UPDATES_PER_HOUR: 允许的每小时最大更新数量
MAX_CONNECTIONS_PER_HOUR: 允许的每小时最大连接(LCTT译注:其与 MySQL全局变量: max_user_connections 共同决定用户到数据库的同时连接数量)数量
MAX_USER_CONNECTIONS: 对服务器的同时连接量
使用以下命令为"myuser"帐号增加一个资源限制:
mysql> GRANT USAGE ON <database><table> TO 'myuser'@'localhost' WITH <resource-limits>;
在 <resource-limits> 中你可以指定多个使用空格分隔开的资源限制。
例如,增加 MAXQUERIESPERHOUR 和 MAXCONNECTIONSPERHOUR 资源限制:
mysql> GRANT USAGE ON TO 'myuser'@'localhost' WITH MAX_QUERIES_PER_HOUR 30 MAX_CONNECTIONS_PER_HOUR 6;
验证用户的资源限制:
mysql> SHOW GRANTS FOR 'myuser'@'localhost;
创建和设置一个MySQL用户最后的一个重要步骤:
mysql> FLUSH PRIVILEGES;
如此一来更改便生效了。现在MySQL用户帐号就可以使用了。

可以增加
有两种:1和楼上说的 365/年 是需要每年收费的 支持远程网络使用 每个服务器支持30个。但是可以通增加连接点的方式可以继续网上增加。
2还有一种是2200每站点的。这个不需要续费 终身使用的,支持局域网站点应用。每个服务器建议站点数是30。

你可能安装了Norton Internet Security(NIS)软件,它会在电脑左上角显示一个图标,以提醒你电脑上安装了NIS软件。NIS软件可以帮助你防止病毒、间谍软件、木马程序和其他恶意程序对你的电脑造成损害。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12805868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存