linuxϵÄumask( )º¯Êý¡¢setsid( )º¯Êý
umask()º¯Êý£º´Ëº¯ÊýµÄÖ÷Òª×÷ÓÃÊÇÔÚ´´½¨ÎļþʱÉèÖûòÕ߯Á±ÎµôÎļþµÄһЩȨÏÞ¡£Ò»°ãÓëopen()º¯ÊýÅäºÏʹÓá£openº¯ÊýÔÐÍ£º
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int open( const char * pathname, int flags);
int open( const char * pathname,int flags, mode_t mode);
µ±´´½¨Ò»¸öÎļþ²¢ÇÒÒªÃ÷È·Ö¸¶¨´ËÎļþµÄȨÏÞʱ£¬Ó¦¸ÃʹÓõڶþ¸öopen()º¯Êý£¬Ã÷È·Ö¸¶¨mode²ÎÊý£¬Ëù´´½¨µÄÎļþ×îºóµÄȨÏÞÊÇ£ºmode&(~mask)¡£Ä¬ÈϵÄmaskÖµÊÇ£º022
Àý£º
int main()
{
int fd;
umask(0026);
fd = open("test.txt",O_RDWR | O_CREAT,0666);
if(fd < 0)
perror("open");
return 0;
}
ÔòÉú³ÉµÄtest.txtÎļþµÄȨÏÞÊÇ£º666&(~026)½á¹ûÊÇ£º-rw-r--r--¡£Èç¹ûûÓÐumask(0026);ÕâÌõÓï¾ä£¬ÔòÉú³ÉµÄtest.txtÎļþµÄȨÏÞÊÇ£º666&(~022)½á¹ûÊÇ£º-rw-r-----¡£×¢£ºopenº¯ÊýµÄmode²ÎÊýÖ»ÓÐÔÚ´´½¨Îļþʱ²ÅÓÐЧ¡£
setsid( )˵Ã÷£º½ø³Ì´ÓËüµÄË«Ç×½ø³Ì»ñµÃËüµÄ¶Ô»°¹ý³ÌºÍ½ø³Ì×éʶ±ðºÅ¡£setsid()¾ÍÊǽ«½ø³ÌºÍËüµ±Ç°µÄ¶Ô»°¹ý³ÌºÍ½ø³Ì×é·ÖÀ뿪£¬²¢ÇÒ°ÑËüÉèÖóÉÒ»¸öеĶԻ°¹ý³ÌµÄÁìÍ·½ø³Ì¡£
pid_t pid = fork();
if (pid == 0) {
...
int result = execl(path, "adb", "fork-server", "server", NULL);
} else {
// run a program in a new session
setsid();//֮ǰparentºÍchildÔËÐÐÔÚͬһ¸ösessionÀ¶øÇÒparentÊÇsessionÍ·£¬
//ËùÒÔ×÷ΪsessionÍ·µÄparentÈç¹ûexit½áÊøÖ´Ðеϰ£¬ÄÇô»á»°session×éÖеÄËùÓнø³Ì½«¶¼±»É±ËÀ£»
//ËùÒÔÖ´ÐÐsetsid()Ö®ºó£¬parent½«ÖØÐ»ñµÃÒ»¸öеĻỰsession×éid£¬child½«ÈÔ³ÖÓÐÔÓеĻỰsession×飬
//ÕâʱparentÍ˳öÖ®ºó£¬½«²»»áÓ°Ïìµ½childÁË¡£
}
»á»°sessionÊÇÒ»¸ö»ò¶à¸ö½ø³Ì×éµÄ¼¯ºÏ
Ïà¹ØÎĵµ£º
version: 1.0
date:20090721
Author£ºcrifan
Mail:green-waste(At)163.com
ÉϽӣº¡¾¼ò½é¡¿ÈçºÎ±àдlinuxÏÂnand flashÇý¶¯-1
http://green-waste.blog.163.com/blog/static/3267767820096221127554/
¡¾¶Á£¨read£©²Ù×÷¹ý³ÌÏê½â¡¿
ÒÔ×î¼òµ¥µÄread²Ù×÷ΪÀý£¬½âÊÍÈçºÎÀí½âʱÐòͼ£¬ÒÔ¼°½«Ê±Ðòͼ
ÖеÄÒªÇó£¬×ª»¯ ......
1¡¢
½«Îļþcheckoutµ½±¾µØÄ¿Â¼
svn
checkout
path£¨pathÊÇ·þÎñÆ÷ÉϵÄĿ¼£©
ÀýÈ磺svn
checkout svn
://192.168
.1.1
/pro/domain
¼òд£ºsvn
co
2¡¢
Íù°æ±¾¿âÖÐÌí¼ÓеÄÎļþ
svn
add
file
ÀýÈ磺svn
add test.php(Ìí¼Ótest.php)
svn
add *.php(Ìí¼Óµ±Ç°Ä¿Â¼ÏÂËùÓеÄphpÎļþ)
3¡¢
½«¸Ä¶¯ ......
vi adduser.sh È»ºó°ÑÈçÏ´úÂëÌùÈë¡£±£´æµ½CVSROOTĿ¼Ï¡£
#!/bin/bash
#add cvs users
while [ -n "$(echo $1|grep '^_')"];
do
case $1 in
-u) param=$2
echo -e "$param:\c" >>passwd
shift ;;
-p) param=$2
echo -e `./passwdgen.pl $param`":cvsroot" >> passwd;;
*)
exit 1
esac
shift
......
¼¶±ð£º Öм¶
Éê Òã (shenyyi@cn.ibm.com), Èí¼þ¹¤³Ìʦ, IBM ÖйúÈí¼þ¿ª·¢ÖÐÐÄ
2008 Äê 5 ÔÂ 29 ÈÕ
ÏëÈýø³ÌÔÚ¶Ï¿ªÁ¬½ÓºóÒÀÈ»±£³ÖÔËÐУ¿Èç¹û¸Ã½ø³ÌÒѾ¿ªÊ¼ÔËÐÐÁ˸ÃÈçºÎ²¹¾È£¿ Èç¹ûÓдóÁ¿ÕâÀàÐèÇóÈçºÎ¼ò»¯²Ù×÷£¿
ÎÒÃǾ³£»áÅöµ½ÕâÑùµÄÎÊÌ⣬Óà telnet/ssh µÇ¼ÁËÔ¶³ÌµÄ Linux ·þÎñÆ÷£¬ÔËÐÐÁËһЩºÄʱ½Ï³¤µÄÈÎÎñ£¬ ½á¹ûÈ´ ......
ÕÅ Õé
˶ʿÑо¿Éú
ÄϾ©ÐÅÏ¢¹¤³Ì´óѧ601ÐÅÏä,ÄϾ©210044
0 ÒýÑÔ
Ëæ
×Å¿ª·ÅÔ´´úÂëÔ˶¯µÄ·ÉËÙ·¢Õ¹£¬Linux²Ù×÷ϵͳԽÀ´Ô½Êܵ½ÈËÃǵÄÖØÊÓ¡£ÆäÁ¼ºÃµÄ¿É²Ã¼õÐÔÓë¿ÉÒÆÖ²ÐÔ£¬×¿Ô½µÄЧÂʺÍÎȶ¨ÐÔ£¬ÒÔ¼°Ö§³Ö¶àÖÖ´¦ÀíÆ÷Ìåϵ¼Ü¹¹µÄ
ÌØµã£¬Ê¹µÃLinuxÔ½À´Ô½¹ã·ºµÄÓ¦ÓÃÓÚǶÈëʽÁìÓò¡£Í¬Ê±£¬ARM9´¦ÀíÆ÷¸ßÖ÷ƵµÄ´¦ÀíËÙ¶È¡¢´óÈÝÁ¿µÄÉÁ´ ......