免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4296 | 回复: 14

[其他] root用户有创建最多线程的权限,如何让普通用户也有这个权限? [复制链接]

论坛徽章:
0
发表于 2013-04-25 14:26 |显示全部楼层
本帖最后由 iw1210 于 2013-04-25 14:44 编辑

root用户有创建最多线程的权限,如何让普通用户也有这个权限?


用一个 test.c 程序测试:
  1. #include <pthread.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <unistd.h>

  6. #define MAX_TEST_THREAD 3000

  7. void * handle(void *data)
  8. {
  9.         while(1)
  10.                 sleep(1);
  11. }

  12. int main()
  13. {
  14.     int         i, n, r;
  15.     pthread_t   pid;

  16.     printf("Now try to create %d threads.\n",MAX_TEST_THREAD);

  17.     for(i=0, n=0; i<MAX_TEST_THREAD; i++)
  18.     {
  19.         r = pthread_create(&pid,NULL,handle,NULL);
  20.         if(r != 0)
  21.         {
  22.                 fprintf(stderr,"pthread_create error: %s\n", strerror(r));
  23.                 break;
  24.         }else
  25.         {
  26.                 n++;
  27.         }
  28.     }

  29.     printf("%d threads have been created!\n", n);

  30.     sleep(5);

  31.     exit(0);
  32. }
复制代码
[oracle@localhost]$ ./test
Now try to create 3000 threads.
pthread_create error: Resource temporarily unavailable
885 threads have been created!                 // oracle用户创建线程有限制,不能创建3000个线程。

[oracle@localhost]$ su
Password:
[root@localhost]# ./test
Now try to create 3000 threads.
3000 threads have been created!                 // root用户能创建3000个线程。
[root@localhost]#

论坛徽章:
0
发表于 2013-04-25 15:38 |显示全部楼层
这个问题没人会么?~~~~~~~~~

论坛徽章:
0
发表于 2013-04-25 15:43 |显示全部楼层
粘滞位

好像是chmod +s{:3_189:}

论坛徽章:
0
发表于 2013-04-25 16:18 |显示全部楼层
3000个线程, 你确定,需要这么多?

论坛徽章:
0
发表于 2013-04-25 16:45 |显示全部楼层
zimang 发表于 2013-04-25 16:18
3000个线程, 你确定,需要这么多?


要创建1万个线程呢

论坛徽章:
0
发表于 2013-04-25 16:46 |显示全部楼层
lxyscls_cu 发表于 2013-04-25 15:43
粘滞位

好像是chmod +s

别好像啊,你试验一下啊

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
发表于 2013-04-25 16:53 |显示全部楼层
iw1210 发表于 2013-04-25 16:46
别好像啊,你试验一下啊

不知道问题答案..
但,为啥你自己不试验下....

论坛徽章:
0
发表于 2013-04-25 17:27 |显示全部楼层
pandaiam 发表于 2013-04-25 16:53
不知道问题答案..
但,为啥你自己不试验下....

我不知道他写那个 chmod +s 怎么试

论坛徽章:
1
申猴
日期:2013-09-09 10:22:56
发表于 2013-04-25 19:39 |显示全部楼层
回复 3# lxyscls_cu

不是粘住位,粘住位是+t,现在粘住位用的很少了。。。

应该是setuid/setgid,  root用户下,chmod u+s ./test, 然后ls -l ./test, 会发现原来的用户可执行权限位x变为s


   

论坛徽章:
0
发表于 2013-04-26 09:58 |显示全部楼层
iw1210 发表于 2013-04-25 16:46
别好像啊,你试验一下啊

看一下APUE要死啊{:3_188:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP