OSX:设置用户默认浏览器
近期我们遇到的情况是,须要统一设置用户的默认浏览器为Google Chrome。而系统默认的是Safari。
这个设置是系统Launch Services基于用户管理的。
意思就是说,即便是改动了系统全局參数,假设用户有特定设置。那么会依从用户配置。
仅仅要一设计用户配置,那么就会相对麻烦点。要想改变。会涉及多种用户情况,比方:网络用户目录的情况。用户的配置信息都在server上,所以配置须要在server上改动;假设用户目录保存在本地,那么能够有两种对策,1是:系统默认用户目录模板须要改变。并且须要遍历并改变已登录用户的全部;2是:部署一个用户级别的launchagent服务,每当一个用户登陆后,都会执行一个程序来完毕设置。那么对于移动用户。特别是可能不知道什么时候才干连接到公司网络的情况,就须要一个终端部署管理系统,比方JAMF的或者免费得Munki等等。
上面的措施基本上能够解决差点儿全部的工作站的情况和用户配置情况,关键是怎样解决:
假设是Google Chrome,似乎非常easy,由于Chrome支持一个内部命令:
open -a "Google Chrome" --args --make-default-browser
只是要是针对其它浏览器就无效了,须要其它方法
一个是使用以下的python脚本:
#/usr/bin/env python # ------------------------------------------------------
# Set default web browser app
#
# org from: https://gist.github.com/miketaylr/5969656
#
# enhenced version 1.1 by Tony Liu
# ------------------------------------------------------ from LaunchServices import LSSetDefaultHandlerForURLScheme
from LaunchServices import LSSetDefaultRoleHandlerForContentType
import sys webApp=sys.argv[1] # 0x00000002 = kLSRolesViewer
# see https://developer.apple.com/library/mac/#documentation/Carbon/Reference/LaunchServicesReference/Reference/reference.html#//apple_ref/c/tdef/LSRolesMask LSSetDefaultRoleHandlerForContentType("public.html", 0x00000002, webApp)
LSSetDefaultRoleHandlerForContentType("public.xhtml", 0x00000002, webApp)
LSSetDefaultRoleHandlerForContentType("public.url", 0x00000002, webApp)
LSSetDefaultHandlerForURLScheme("http", webApp)
LSSetDefaultHandlerForURLScheme("https", webApp)
使用方法比方设置Safari为默认的,那么就是
python /path/to/setDefaultBrowser.py com.apple.Safari
同理。Google Chrome是
python /path/to/setDefaultBrowser.py com.google.chrome
另外一个方式就是使用开源工具duti。
下载编译非常easy,之后执行命令:
duti com.google.chrome.canary public.html all
duti com.google.chrome.canary public.xhtml all
duti com.google.chrome.canary public.url all
duti com.google.chrome.canary http
duti com.google.chrome.canary https
另外另一个人做了一个单独的app, 叫defaultbrowser。
參考技术文档:Launch Services
OSX:设置用户默认浏览器的更多相关文章
- APUE学习之三个特殊位 设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky
设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky set-user-ID: SUID 当文件的该位有设置时,表示当该文件被执行时,程序具有文件 ...
- 【转】linux 设置用户id 设置组id
linux 设置用户id 设置组id 转自 linux 设置用户id 设置组id 最近看apue,简单记录对设置用户id理解(设置组id同理). 1. 相关的id好像很多,共有哪些? 文件2个 ...
- UNIX文件的权限之“设置用户ID位”
用stat函数可以获取一个文件的状态信息,原型是这样的: int stat(const char *path, struct stat *buf); 其中结构体stat的结构: struct stat ...
- Windows 10 使用C#如何将IE设置为默认浏览器
在WPF XBAP项目中遇到这样一个问题,程序在Windows 10上面无法运行.原因是因为Windows 10默认浏览器是Edge,而XBAP程序是需要在IE上面运行的.于是开始想办法修改Windo ...
- 设置用户ID和设置组ID
与一个进程关联的ID有6个或更多,如下图所示: 与每个进程相关联的用户ID和组ID 实际用户ID 实际组ID 我们实际是谁 有效用户ID 有效组ID 附加组ID 用于文件访问权限检索 保存的设置用户I ...
- 文件和目录之设置用户ID和设置组ID
与一个进程相关联的ID有6个或更多,它们如表4-4所示: 表4-4 与每个进程相关联的用户ID和组ID 实际用户ID 我们实际上是谁 实际组ID ...
- YII设置用户访问过滤
设置用户访问过滤 1.哪个控制器设置访问过滤,就在哪个控制器中添加如下代码 class XxxController extends Controller { //当前控制器是否使用过滤功能 publi ...
- linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID
一.基本概念 实际用户ID(RUID):用于标识一个系统中用户是谁,一般是在登录之后,就被唯一的确定,就是登录的用户的uid. 有效用户ID(EUID):用于系统决定用户对系统资源的权限,也就是说当用 ...
- 实际用户ID,有效用户ID和设置用户ID
摘自http://blog.csdn.net/guosha/article/details/2679334 实际用户ID,有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念,但一直没 ...
随机推荐
- 【转】Netty系列之Netty编解码框架分析
http://www.infoq.com/cn/articles/netty-codec-framework-analyse/ 1. 背景 1.1. 编解码技术 通常我们也习惯将编码(Encode)称 ...
- 0-Android系统各层中LOG的使用
Android系统各层中LOG的使用 , ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */ ANDROID_LOG_VERBOSE, ANDR ...
- BestCoder 2nd Anniversary/HDU 5718 高精度 模拟
Oracle Accepts: 599 Submissions: 2576 Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/26 ...
- 【bzoj2882】工艺 最小表示法
[bzoj2882]工艺 2014年12月15日1,9020 Description 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品 ...
- swarm 发布服务
1.发布服务 2.发布服务 服务发现:Swarm模式内置DNS组件,自动为每个服务分配DNS记录,然后服务的DNS名称在集群内的服务直接分发请求.负载均衡:在Swarm集群中创建服务时,Ingress ...
- JAVA 字节流和字符流度读写的区别
java处理文件的类里面,stream结尾都是采用字节流,reader和writer结尾都是采用字符流.两者的区别就是读写的时候一个是按字节读写,一个是按字符. 字符流的底层就是字节流.而字符流主要是 ...
- Playing with String(codeforces 305E)
题意:刚开始你只有一个字符串每次能选择一个有的字符串 s,找到 i,满足s[i - 1] = s[i + 1],将其分裂成 3 个字符串s[1 · · · i - 1]; s[i]; s[i + 1 ...
- ckeditor自己用的配置文件config.js
原文发布时间为:2011-01-17 -- 来源于本人的百度文章 [由搬家工具导入] CKEDITOR.editorConfig = function(config) { // Define c ...
- webRTC实战总结
前言 前段时间一直在忙一个基于WebRTC的PC和移动端双向视频的项目.第一次接触webRTC,难免遇到了许多问题,比如:webRTC移动端兼容性检测,如何配置MediaStreamConstrain ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---11
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: