存档
-
debian下保持指定软件包的版本
有时你或许不想升级某些软件包,这时我们可“pin”住这些软件包,使它们不能被升级。我们可很容易实现该功能,只要编辑/etc/apt/preferences配置文件。该文件的格式如下:
Package: <package> Pin: <pin definition> Pin-Priority: <pin’s priority>2008年7月28日 | 归档于 Debian -
升级指定版本的软件包(debian下软件包管理)
apt-show-versions可显示已安装软件包的版本,它提供了一种安全的方法从混合版本环境中升级指定版本的软件包。如以下命令只升级unstable的软件包:
# apt-get install `apt-show-versions -u -b | grep unstable`2008年7月28日 | 归档于 Debian -
建立一个混合系统(debian下软件包管理)
我们有时喜欢用一个Debian版本作为主系统,并使用其它版本的软件包,如我们用testing版为主系统,但有时又会用到unstable版里的新软件包。设置主系统你需编辑/etc/apt/apt.conf文件,在文件中加入以下内容:
APT::Default-Release “version”;
这里的version就是Debian的发行版本,包括stable,testing和unstable。要从Debian另外的版本中安装软件包,需用以下的APT命令:
# apt-get -t version install package
为使上面的命令正常工作,需要在sources.list包含有相应的version资源连接。
你也可用以下命令指定安装软件包的版本。如:
# apt-get install nautilus=2.2.4-1
安装不同版本的软件包容易造成系统包依赖性出错,所以应尽量避免在工作环境中使用。2008年7月28日 | 归档于 Debian -
debian下软件包管理工具apt-key的介绍
apt-key是Debian软件包的安全管理工具。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
apt-key list
列出已保存在系统中key。
apt-key add keyname
把下载的key添加到本地trusted数据库中。
apt-key del keyname
从本地trusted数据库删除key。
apt-key update
更新本地trusted数据库,删除过期没用的key。
2008年7月28日 | 归档于 Debian -
debian下软件包管理工具apt-file的介绍
apt-file是一个软件包查找工具,可以查到软件包所含的文件和安装的位置。
apt-file update
更新软件包的文件库,第一次使用或apt-get update后都需运行一次。
apt-file search file_name
查找该文件存在于哪些软件包中。
apt-file list package_name
显示该软件包的文件。2008年7月28日 | 归档于 Debian -
debian下软件包管理工具apt-cache的介绍
apt-cache是一个apt软件包管理工具,它可查询apt的二进制软件包缓存文件。通过它我们可查询软件包的状态信息。
apt-cache show package_name
显示软件的信息,包括版本号,安装状态和包依赖关系等。
apt-cache search package_name
搜索软件包,可用正则表达式。
apt-cache showpkg package_name
显示软件包的依赖关系信息。
apt-cache policy package_name
显示软件包的安装状态和版本信息。
apt-cache depends package_name
显示指定软件包所依赖的软件包。
apt-cache rdepends package_name
显示软件包的反向依赖关系,即有什么软件包需依赖你所指定的软件包。2008年7月28日 | 归档于 Debian -
debian下软件包管理工具apt-get的介绍
软件包管理是区分不同发行版的一大特征,如RedHat使用RPM软件包来管理软件,Debian使用Deb软件包来管理软件。apt-get是Debian的Deb软件包管理工具,它的最低底层还是调用dpkg包管理程序,通过apt-get工具可使我们很好地解决软件包的依赖关系,方便软件的安装和升级。它是Debian发行版的最大特色,一定要好好掌握。
要使用好apt-get就要配置好一个名为sources.list的资源列表,资源列表指向Debian系统的软件库,apt-get会从该软件库安装各种软件包。sources.list文件位于/etc/apt目录下,下面是Sarge、Etch和Sid三个版本的写法,你可任选一种,最好不要多版本混用:
#sources.list for Sarge(stable):deb http://http.us.debian.org/debian stable main contrib non-freedeb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-freedeb http://security.debian.org stable/updates main contrib non-free#Uncomment if you want the apt-get source function to work#deb-src http://http.us.debian.org/debian stable main contrib non-free#deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
#sources.list for Etch(testing):deb http://http.us.debian.org/debian testing main contrib non-freedeb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-freedeb http://security.debian.org testing/updates main contrib non-free#Uncomment if [...]2008年7月28日 | 归档于 Debian -
debian下文件访问控制列表
debian下文件访问控制列表 (Access Control Lists,ACL)
传统的Linux文件系统的权限控制是通过user、group、other与r(读)、w(写)、x(执行)的不同组合来实现的。随着应用的发展,这些权限组合已不能适应现时复杂的文件系统权限控制要求。例如,我们可能需把一个文件的读权限和写权限分别赋予两个不同的用户或一个用户和一个组这样的组合。传统的权限管理设置起来就力不从心了。为了解决这些问题,Linux开发出了一套新的文件系统权限管理方法,叫文件访问控制列表(Access Control Lists,ACL)。
要启用ACL,需内核提供ACL支持和安装ACL管理工具。现在的2.6内核都提供ACL支持,在编译内核时只要在file systems分支下,把Ext2 POSIX Access Control Lists或Ext3 POSIX Access Control Lists选中就可以了。用以下命令挂接硬盘启用文件系统ACL。
debian:~# mount -t ext2 -o acl /dev/hda1 /mnt/hda1我们也可把选项写到/etc/fstab文件中,在需启用acl的分区选项包含acl参数。
ACL有两种,一种是存取ACL(access ACLs),针对文件和目录设置访问控制列表。一种是默认ACL(default ACLs),只能针对目录设置。如果目录中的文件没有设置ACL,它就会使用该目录的默认ACL。要设置ACL,首先要安装管理工具,它们分别是getfacl和setfacl,在debian中只要安装acl软件包即可。
debian:~# apt-get install aclsetfacl工具可为文件和目录ACL,命令格式如下:
setfacl -m <rules> <files>rules的格式如下,多条规则间可用逗号分隔。
u:uid:perms #为用户设置ACL,perms为r、w、x的组合g:gid:perms #为组设置ACLo:perms #为其它组设置ACLm:perms #设置有效权限屏蔽下面是setfacl的实例:
debian:~# setfacl -m u:jims:rw testfile.txt #-m选项表示添加或修改文件或目录的权限访问列表
debian:~# setfacl -x u:jims:rw testfile.txt#-x选项表示删除文件或目录的访问列表要设置默认的ACL,只在rules前加一个d:,以表示指定一个目录,如:
debian:~# setfacl -m d:o:rx /datagetfacl用以显示文件或目录的ACL,如:
debian:getfacl debian.xml# file: debian.xml# owner: jims# group: jimsuser::rwxgroup::r–other::r– tar和dump工具不能备份ACL文件,如果我们要备份ACL文件系统,可以使用star工具。另外,samba可通过–with-acl-support编译选项支持ACL。2008年7月28日 | 归档于 Debian -
debian下文件和目录的权限
Linux系统以安全性高著称,它有完善的文件和目录权限控制机制。使用ls -l命令可查看系统中文件和目录的权限。如:
debian:~# ls -ldrwxr-xr-x 3 root root 4096 2005-05-05 02:01 SAPGUI-rw-r–r– 1 root root 66842 2005-03-27 17:20 Screenshot.png-rw-r–r– 1 root root 72 2005-03-03 20:24 setup.log-rwxr-xr-x 1 root root 268 2005-03-13 15:44 test…最左边的一串字符是文件和目录的权限控制字符串,权限字符串的第一个字母代表文件类型,不同字符代表不同的意思:
-,一般文件
d,目录
l,符号连接
b,块特殊文件
c,字符特殊文件
s,socket套接字
p,命名管道
后面9个字符分成三组,分别代表user(用户),group(组)和other(其它)的许可权限。每组有三个权限位,代表具体的权限:
r,表示文件可读或目录可读,位于三位权限组的第一位置。
w,表示文件可修改或目录可修改,位于三位权限组的第二位置。
x,表示文件可执行或目录中的文件可执行,位于三位权限组的第三位置。
s,表示set UID或set GID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。s权限位是一个敏感的权限位,容易造成系统的安全问题。请在设置时小心,并注意系统中已有的SUID或SGID文件和目录。
t,表示粘着位(sticky)。位于other权限组的第三位置。具有该位的文件和目录只有创建者才能删除。
-,表示没有权限。该字符可出现在任何位置,表示没有许可权限。
权限位后面的数字3,1,1,1表示硬链接的链接数,3表示有三个硬链接,1表示有一个硬链接。
当我们在linux中创建一个文件或目录时,系统通过umask环境变量来控制默认的权限位设置。umask的值多为022,在profile文件里设置。设置格式如下:
…umask 022…使用chmod,chown和chgrp改变文件的访问权限,使用setuid和setgid来改变特殊位。
使用ls -i filename命令可以列出文件的inode信息。如:
localhost:~# ls -i simple.png32563 simple.png32563就是simple.png的inode节点的值。inode值相同的链接是硬链接,inode值不同的是软链接。
硬链接示例:
localhost:~# ls -li simple.png32563 -rw-r–r– 1 root root 1574 2005-12-15 14:59 simple.pnglocalhost:~# ln simple.png simple1.png [...]2008年7月28日 | 归档于 Debian -
debian下管理文件系统
mount命令的使用
使用mount命令就可在Linux中挂载各种文件系统,如:
debian:~# mount -t vfat /dev/hda1 /mnt/hda1上面这条命令就把/dev/hda1这个fat分区挂载到了/mnt/hda1目录下。“-t”参数指定文件系统类型,常见的文件类型见上面“Linux文件系统类型”一表的内容。在挂载硬盘时,还有一个“-o”参数,它可指定挂载文件系统时的一些选项,如:
codepage=xxx,指定代码页,如936(简体中文)、437(英文)等。
iocharset=xxx,指定字符集,如utf8、gb2312等。
ro,以只读方式挂载。
rw,以读写方式挂载。
mount命令的参数选项是很丰富的,以上介绍的只是常用一些功能,详细介绍请参考man手册。
使用mkfs命令可以创建文件系统,如:
debian:~# mkfs -t ext2 /dev/fd0 1400这条命令在软盘上创建一个容量为1.44M的ext2文件系统。
fsck命令的使用
使用fsck命令可以检查文件系统,如:
debian:~# fsck -t ext2 /dev/hda3使用mkswap命令可以创建swap空间,如:
debian:~# mkswap -c /dev/hda4debian:~# swapon /dev/hda4 #启用新创建的swap空间,停用可使用swapoff命令设备文件是Linux中一种特殊的文件,它对应每种硬件设备,如硬盘、软驱等。它可以像文件一样对它进行读写操作。设备文件位于/dev目录下,/dev/hda代表第一个IDE硬盘,/dev/fd0代表第一个软驱。/dev/null是一个虚设的设备,它就像一个无底的黑洞,任何对/dev/null的写入都会成功,但数据会消失得无影无踪,没有任何反馈。所以我们经常把不想在屏幕显示的信息全部送到/dev/null中。下面是一个设备文件的信息:
brw-rw—- 1 root disk 3, 0 2005-07-07 05:29 /dev/hda大家注意文件的size列,它是由逗号分隔的两个数字(3,0),第一个值代表主设备号(major device number),第二个值代表次设备号(minor device number)。主设备号对应内核相应的功能,而次设备号对应由驱动程序管理的特定设备。所以同一类设备的主设备号都是相同的,次设备号则不同。内核根据主设备号将I/O的要求导向到适当的驱动程序上,而该驱动程序以次要编号来判断出指定要使用的设备。系统安装同,默认已安装了大部份的设备文件,在/dev目录下可查询到很多的设备文件。但有时我们也需新增一设备文件,这时我们可使用mknod命令,命令格式如下:
mknod -m permissions name type major minor-m permissions参数可有可无,主要用于设置设备文件的权限name是所要创建的设备名,要有完整的路径,如/dev/rhdatype是设备文件的类型,c代表字符设备,b代表块设备major指定设备的主编号minor指定设备的次编号使用dumpe2fs device | more可显示文件系统的详细信息。如:
debian:/var/log# dumpe2fs /dev/hdb1 |moredumpe2fs 1.37 (21-Mar-2005)Filesystem volume name: <none>Last mounted on: <not available>Filesystem [...]2008年7月28日 | 归档于 Debian